From 2cf23a2bd145f31dc98fbda8cd004ca93c2bbd66 Mon Sep 17 00:00:00 2001 From: Cooper Ransom Date: Mon, 26 Feb 2024 10:54:56 -0500 Subject: [PATCH] Add sudo-flix code from github --- .dockerignore | 6 + .editorconfig | 7 + .eslintrc.js | 108 + .gitattributes | 1 + .github/CODEOWNERS | 1 + .github/CODE_OF_CONDUCT.md | 128 + .github/CONTRIBUTING.md | 94 + .github/ISSUE_TEMPLATE/bug-report.yml | 50 + .github/ISSUE_TEMPLATE/feature-request.yml | 26 + .github/SECURITY.md | 13 + .github/logo-dark.svg | 11 + .github/logo-light.svg | 11 + .github/pull_request_template.md | 6 + .github/workflows/deploying.yml | 181 + .github/workflows/linting_testing.yml | 74 + .gitignore | 30 + .npmrc | 1 + .vscode/extensions.json | 6 + .vscode/settings.json | 11 + Dockerfile | 18 + LICENSE.md | 21 + README.md | 67 + example.env | 8 + index.html | 165 + package.json | 137 + plugins/.gitignore | 1 + plugins/figmaTokensToThemeTokens.mjs | 43 + plugins/handlebars.ts | 41 + pnpm-lock.yaml | 7534 +++++++++++++++++ postcss.config.js | 6 + prettierrc.js | 4 + public/_headers | 13 + public/_redirects | 2 + public/android-chrome-192x192.png | Bin 0 -> 6970 bytes public/android-chrome-512x512.png | Bin 0 -> 25311 bytes public/apple-touch-icon.png | Bin 0 -> 6296 bytes public/browserconfig.xml | 9 + public/config.js | 19 + public/favicon-16x16.png | Bin 0 -> 637 bytes public/favicon-32x32.png | Bin 0 -> 935 bytes public/favicon.ico | Bin 0 -> 15086 bytes public/flags/galicia.svg | 199 + public/flags/skull.svg | 1 + public/flags/tokiPona.svg | 76 + public/flixico.jpg | Bin 0 -> 6984 bytes public/lightbar-images/fishie.png | Bin 0 -> 314 bytes public/lightbar-images/santa.png | Bin 0 -> 94675 bytes public/lightbar-images/snowflake.svg | 45 + public/mstile-150x150.png | Bin 0 -> 3170 bytes public/ping.txt | 1 + public/robots.txt | 3 + public/safari-pinned-tab.svg | 18 + .../splash_screens/10.2__iPad_landscape.png | Bin 0 -> 87928 bytes public/splash_screens/10.2__iPad_portrait.png | Bin 0 -> 90267 bytes .../10.5__iPad_Air_landscape.png | Bin 0 -> 92537 bytes .../10.5__iPad_Air_portrait.png | Bin 0 -> 93780 bytes .../10.9__iPad_Air_landscape.png | Bin 0 -> 97487 bytes .../10.9__iPad_Air_portrait.png | Bin 0 -> 98681 bytes ...11__iPad_Pro__10.5__iPad_Pro_landscape.png | Bin 0 -> 99123 bytes .../11__iPad_Pro__10.5__iPad_Pro_portrait.png | Bin 0 -> 101528 bytes .../12.9__iPad_Pro_landscape.png | Bin 0 -> 134804 bytes .../12.9__iPad_Pro_portrait.png | Bin 0 -> 137013 bytes ...uch_5th_generation_and_later_landscape.png | Bin 0 -> 23233 bytes ...ouch_5th_generation_and_later_portrait.png | Bin 0 -> 24643 bytes .../8.3__iPad_Mini_landscape.png | Bin 0 -> 87016 bytes .../8.3__iPad_Mini_portrait.png | Bin 0 -> 90098 bytes ...ni__9.7__iPad_Air__9.7__iPad_landscape.png | Bin 0 -> 79554 bytes ...ini__9.7__iPad_Air__9.7__iPad_portrait.png | Bin 0 -> 79746 bytes ...ne_11_Pro_Max__iPhone_XS_Max_landscape.png | Bin 0 -> 92053 bytes ...one_11_Pro_Max__iPhone_XS_Max_portrait.png | Bin 0 -> 93749 bytes .../iPhone_11__iPhone_XR_landscape.png | Bin 0 -> 45243 bytes .../iPhone_11__iPhone_XR_portrait.png | Bin 0 -> 47519 bytes ..._11_Pro__iPhone_XS__iPhone_X_landscape.png | Bin 0 -> 76272 bytes ...e_11_Pro__iPhone_XS__iPhone_X_portrait.png | Bin 0 -> 79987 bytes ...3_Pro_Max__iPhone_12_Pro_Max_landscape.png | Bin 0 -> 98114 bytes ...13_Pro_Max__iPhone_12_Pro_Max_portrait.png | Bin 0 -> 100693 bytes ...13__iPhone_12_Pro__iPhone_12_landscape.png | Bin 0 -> 83344 bytes ..._13__iPhone_12_Pro__iPhone_12_portrait.png | Bin 0 -> 86717 bytes ...e_15_Plus__iPhone_14_Pro_Max_landscape.png | Bin 0 -> 98019 bytes ...ne_15_Plus__iPhone_14_Pro_Max_portrait.png | Bin 0 -> 100734 bytes ...ro__iPhone_15__iPhone_14_Pro_landscape.png | Bin 0 -> 84156 bytes ...Pro__iPhone_15__iPhone_14_Pro_portrait.png | Bin 0 -> 87628 bytes ...Phone_6s_Plus__iPhone_6_Plus_landscape.png | Bin 0 -> 73664 bytes ...iPhone_6s_Plus__iPhone_6_Plus_portrait.png | Bin 0 -> 75874 bytes ...6s__iPhone_6__4.7__iPhone_SE_landscape.png | Bin 0 -> 30258 bytes ..._6s__iPhone_6__4.7__iPhone_SE_portrait.png | Bin 0 -> 31835 bytes public/splash_screens/icon.png | Bin 0 -> 29906 bytes src/@types/country-language.d.ts | 21 + src/assets/README.md | 9 + src/assets/css/index.css | 233 + src/assets/languages.ts | 88 + src/assets/locales/ar.json | 416 + src/assets/locales/bg.json | 285 + src/assets/locales/bn.json | 279 + src/assets/locales/ca.json | 428 + src/assets/locales/cs.json | 526 ++ src/assets/locales/de.json | 482 ++ src/assets/locales/el.json | 428 + src/assets/locales/en.json | 533 ++ src/assets/locales/es.json | 528 ++ src/assets/locales/et.json | 428 + src/assets/locales/fa.json | 530 ++ src/assets/locales/fi-FI.json | 290 + src/assets/locales/fr.json | 530 ++ src/assets/locales/gl.json | 428 + src/assets/locales/gu.json | 428 + src/assets/locales/he.json | 526 ++ src/assets/locales/hi.json | 428 + src/assets/locales/id.json | 417 + src/assets/locales/is-IS.json | 305 + src/assets/locales/it.json | 533 ++ src/assets/locales/ja.json | 109 + src/assets/locales/km.json | 38 + src/assets/locales/ko.json | 402 + src/assets/locales/lv.json | 389 + src/assets/locales/minion.json | 428 + src/assets/locales/ne.json | 533 ++ src/assets/locales/nl.json | 533 ++ src/assets/locales/nv.json | 1 + src/assets/locales/pa.json | 64 + src/assets/locales/pirate.json | 396 + src/assets/locales/pl.json | 533 ++ src/assets/locales/pt-BR.json | 491 ++ src/assets/locales/pt-PT.json | 428 + src/assets/locales/ro.json | 444 + src/assets/locales/ru.json | 315 + src/assets/locales/sl.json | 419 + src/assets/locales/sv.json | 389 + src/assets/locales/ta.json | 67 + src/assets/locales/th.json | 413 + src/assets/locales/tok.json | 390 + src/assets/locales/tr.json | 428 + src/assets/locales/uk.json | 528 ++ src/assets/locales/vi.json | 160 + src/assets/locales/zh-Hant.json | 102 + src/assets/locales/zh.json | 526 ++ src/assets/templates/opensearch.xml.hbs | 6 + src/backend/accounts/auth.ts | 35 + src/backend/accounts/bookmarks.ts | 64 + src/backend/accounts/crypto.ts | 131 + src/backend/accounts/import.ts | 33 + src/backend/accounts/login.ts | 48 + src/backend/accounts/meta.ts | 15 + src/backend/accounts/progress.ts | 115 + src/backend/accounts/register.ts | 55 + src/backend/accounts/sessions.ts | 49 + src/backend/accounts/settings.ts | 39 + src/backend/accounts/user.ts | 178 + src/backend/extension/compatibility.ts | 7 + src/backend/extension/messaging.ts | 80 + src/backend/extension/plasmo.ts | 71 + src/backend/extension/request.ts | 17 + src/backend/extension/streams.ts | 43 + src/backend/helpers/fetch.ts | 79 + src/backend/helpers/providerApi.ts | 163 + src/backend/helpers/report.ts | 165 + src/backend/helpers/subs.ts | 33 + src/backend/metadata/getmeta.ts | 214 + src/backend/metadata/justwatch.ts | 84 + src/backend/metadata/search.ts | 35 + src/backend/metadata/tmdb.ts | 273 + src/backend/metadata/types/justwatch.ts | 65 + src/backend/metadata/types/mw.ts | 53 + src/backend/metadata/types/tmdb.ts | 289 + src/backend/providers/fetchers.ts | 88 + src/backend/providers/providers.ts | 27 + src/components/Avatar.tsx | 95 + src/components/FlagIcon.tsx | 60 + src/components/Icon.tsx | 170 + src/components/LinksDropdown.tsx | 173 + src/components/UserIcon.tsx | 35 + src/components/buttons/Button.tsx | 142 + src/components/buttons/EditButton.tsx | 37 + src/components/buttons/IconPatch.tsx | 34 + src/components/buttons/Toggle.tsx | 23 + src/components/form/ColorPicker.tsx | 40 + src/components/form/Dropdown.tsx | 68 + src/components/form/IconPicker.tsx | 47 + src/components/form/PassphraseDisplay.tsx | 57 + src/components/form/SearchBar.tsx | 78 + src/components/layout/Box.tsx | 9 + src/components/layout/BrandPill.tsx | 34 + src/components/layout/Footer.tsx | 109 + src/components/layout/IconPill.tsx | 13 + src/components/layout/LargeCard.tsx | 58 + src/components/layout/Loading.tsx | 22 + src/components/layout/Navigation.tsx | 116 + src/components/layout/ProgressRing.tsx | 39 + src/components/layout/SectionHeading.tsx | 28 + src/components/layout/SettingsCard.tsx | 37 + src/components/layout/Sidebar.tsx | 47 + src/components/layout/Spinner.css | 19 + src/components/layout/Spinner.tsx | 9 + src/components/layout/Stepper.tsx | 25 + src/components/layout/ThinContainer.tsx | 32 + src/components/layout/WideContainer.tsx | 19 + src/components/media/MediaCard.tsx | 173 + src/components/media/MediaGrid.tsx | 18 + src/components/media/WatchedMediaCard.tsx | 51 + src/components/overlays/Modal.tsx | 42 + src/components/overlays/OverlayAnchor.tsx | 20 + src/components/overlays/OverlayDisplay.tsx | 141 + src/components/overlays/OverlayPage.tsx | 60 + src/components/overlays/OverlayRouter.tsx | 101 + .../positions/OverlayAnchorPosition.tsx | 74 + .../positions/OverlayMobilePosition.tsx | 37 + src/components/player/Player.tsx | 11 + src/components/player/README.md | 31 + src/components/player/atoms/Airplay.tsx | 17 + src/components/player/atoms/AutoPlayStart.tsx | 34 + .../player/atoms/CastingNotification.tsx | 22 + src/components/player/atoms/Chromecast.tsx | 56 + src/components/player/atoms/EpisodeTitle.tsx | 24 + src/components/player/atoms/Episodes.tsx | 300 + src/components/player/atoms/Fullscreen.tsx | 15 + .../player/atoms/LoadingSpinner.tsx | 10 + .../player/atoms/NextEpisodeButton.tsx | 115 + src/components/player/atoms/Pause.tsx | 22 + src/components/player/atoms/Pip.tsx | 20 + src/components/player/atoms/ProgressBar.tsx | 186 + src/components/player/atoms/Settings.tsx | 97 + src/components/player/atoms/Skips.tsx | 39 + src/components/player/atoms/Time.tsx | 67 + src/components/player/atoms/Title.tsx | 6 + src/components/player/atoms/Volume.tsx | 82 + .../player/atoms/VolumeChangedPopout.tsx | 43 + src/components/player/atoms/index.ts | 18 + .../atoms/settings/CaptionSettingsView.tsx | 291 + .../player/atoms/settings/CaptionsView.tsx | 189 + .../player/atoms/settings/Downloads.tsx | 216 + .../atoms/settings/PlaybackSettingsView.tsx | 71 + .../player/atoms/settings/QualityView.tsx | 115 + .../player/atoms/settings/SettingsMenu.tsx | 98 + .../atoms/settings/SourceSelectingView.tsx | 166 + src/components/player/base/BackLink.tsx | 23 + src/components/player/base/BlackOverlay.tsx | 11 + src/components/player/base/BottomControls.tsx | 38 + src/components/player/base/CenterControls.tsx | 7 + .../player/base/CenterMobileControls.tsx | 26 + src/components/player/base/Container.tsx | 102 + .../player/base/LeftSideControls.tsx | 32 + src/components/player/base/SubtitleView.tsx | 131 + src/components/player/base/TopControls.tsx | 54 + src/components/player/display/base.ts | 394 + src/components/player/display/chromecast.ts | 278 + .../player/display/displayInterface.ts | 73 + src/components/player/hooks/useCaptions.ts | 71 + .../player/hooks/useInitializePlayer.ts | 37 + src/components/player/hooks/usePlayer.ts | 80 + src/components/player/hooks/usePlayerMeta.ts | 77 + .../player/hooks/useShouldShowControls.tsx | 30 + src/components/player/hooks/useSlashFocus.ts | 22 + .../player/hooks/useSourceSelection.ts | 213 + src/components/player/hooks/useVolume.ts | 34 + src/components/player/index.tsx | 1 + .../player/internals/BookmarkButton.tsx | 30 + src/components/player/internals/Button.tsx | 37 + .../player/internals/CastingInternal.tsx | 117 + .../player/internals/ContextMenu/Cards.tsx | 17 + .../player/internals/ContextMenu/Input.tsx | 21 + .../player/internals/ContextMenu/Links.tsx | 160 + .../player/internals/ContextMenu/Misc.tsx | 83 + .../player/internals/ContextMenu/Sections.tsx | 62 + .../player/internals/ContextMenu/index.ts | 11 + .../player/internals/HeadUpdater.tsx | 31 + .../player/internals/KeyboardEvents.tsx | 152 + .../player/internals/MetaReporter.tsx | 92 + .../player/internals/ProgressSaver.tsx | 58 + .../player/internals/ScrapeCard.tsx | 76 + .../player/internals/StatusCircle.tsx | 89 + .../player/internals/ThumbnailScraper.tsx | 192 + .../player/internals/VideoClickTarget.tsx | 62 + .../player/internals/VideoContainer.tsx | 121 + src/components/player/utils/aired.ts | 11 + src/components/player/utils/captions.ts | 88 + .../player/utils/convertRunoutputToSource.ts | 57 + src/components/player/utils/handleBuffered.ts | 8 + .../player/utils/mediaErrorDetails.ts | 31 + src/components/player/utils/videoTracks.ts | 19 + src/components/text-inputs/AuthInputBox.tsx | 31 + .../text-inputs/TextInputControl.tsx | 85 + src/components/text/ArrowLink.tsx | 56 + src/components/text/DotList.tsx | 19 + src/components/text/HeroTitle.tsx | 16 + src/components/text/Link.tsx | 23 + src/components/text/Paragraph.tsx | 17 + src/components/text/SecondaryLabel.tsx | 3 + src/components/text/Title.tsx | 17 + src/components/utils/Divider.tsx | 12 + src/components/utils/ErrorLine.tsx | 18 + src/components/utils/Flare.css | 7 + src/components/utils/Flare.tsx | 103 + src/components/utils/Lightbar.css | 77 + src/components/utils/Lightbar.tsx | 237 + src/components/utils/Ol.tsx | 36 + src/components/utils/Text.tsx | 63 + src/components/utils/Transition.tsx | 108 + src/hooks/auth/useAuth.ts | 199 + src/hooks/auth/useAuthData.ts | 105 + src/hooks/auth/useAuthRestore.ts | 26 + src/hooks/auth/useBackendUrl.ts | 7 + src/hooks/useChromecastAvailable.ts | 15 + src/hooks/useDebounce.ts | 17 + src/hooks/useIsMobile.ts | 30 + src/hooks/useOverlayRouter.ts | 137 + src/hooks/usePing.ts | 41 + src/hooks/useProgressBar.ts | 89 + src/hooks/useProviderScrape.tsx | 276 + src/hooks/useQueryParams.ts | 39 + src/hooks/useRandomTranslation.ts | 32 + src/hooks/useSearchQuery.ts | 41 + src/hooks/useSettingsState.ts | 147 + src/index.tsx | 164 + src/pages/About.tsx | 44 + src/pages/DeveloperPage.tsx | 17 + src/pages/Dmca.tsx | 31 + src/pages/HomePage.tsx | 63 + src/pages/Login.tsx | 20 + src/pages/PlayerView.tsx | 140 + src/pages/Register.tsx | 80 + src/pages/Settings.tsx | 288 + src/pages/admin/AdminPage.tsx | 24 + src/pages/developer/TestView.tsx | 12 + src/pages/developer/VideoTesterView.tsx | 112 + src/pages/errors/ErrorBoundary.tsx | 44 + src/pages/errors/NotFoundPage.tsx | 5 + src/pages/layouts/ErrorLayout.tsx | 26 + src/pages/layouts/HomeLayout.tsx | 14 + src/pages/layouts/MinimalPageLayout.tsx | 28 + src/pages/layouts/PageLayout.tsx | 11 + src/pages/layouts/SubPageLayout.tsx | 43 + src/pages/onboarding/Onboarding.tsx | 117 + src/pages/onboarding/OnboardingExtension.tsx | 281 + src/pages/onboarding/OnboardingProxy.tsx | 96 + src/pages/onboarding/onboardingHooks.ts | 37 + src/pages/onboarding/utils.tsx | 91 + src/pages/parts/admin/BackendTestPart.tsx | 127 + src/pages/parts/admin/ConfigValuesPart.tsx | 34 + src/pages/parts/admin/TMDBTestPart.tsx | 99 + src/pages/parts/admin/WorkerTestPart.tsx | 122 + src/pages/parts/auth/AccountCreatePart.tsx | 104 + src/pages/parts/auth/LoginFormPart.tsx | 108 + .../parts/auth/PassphraseGeneratePart.tsx | 39 + src/pages/parts/auth/TrustBackendPart.tsx | 87 + src/pages/parts/auth/VerifyPassphrasePart.tsx | 121 + src/pages/parts/errors/ErrorCard.tsx | 111 + src/pages/parts/errors/ErrorPart.tsx | 59 + src/pages/parts/errors/NotFoundPart.tsx | 40 + src/pages/parts/home/BookmarksPart.tsx | 66 + src/pages/parts/home/HeroPart.tsx | 87 + src/pages/parts/home/WatchingPart.tsx | 64 + src/pages/parts/migrations/MigrationPart.tsx | 24 + src/pages/parts/player/MetaPart.tsx | 236 + src/pages/parts/player/PlaybackErrorPart.tsx | 52 + src/pages/parts/player/PlayerPart.tsx | 140 + src/pages/parts/player/ScrapeErrorPart.tsx | 81 + src/pages/parts/player/ScrapingPart.tsx | 156 + src/pages/parts/search/SearchListPart.tsx | 89 + src/pages/parts/search/SearchLoadingPart.tsx | 13 + .../parts/settings/AccountActionsPart.tsx | 71 + src/pages/parts/settings/AccountEditPart.tsx | 85 + src/pages/parts/settings/CaptionsPart.tsx | 137 + src/pages/parts/settings/ConnectionsPart.tsx | 172 + src/pages/parts/settings/DeviceListPart.tsx | 104 + src/pages/parts/settings/PreferencesPart.tsx | 67 + src/pages/parts/settings/ProfileEditModal.tsx | 67 + .../parts/settings/RegisterCalloutPart.tsx | 32 + src/pages/parts/settings/SetupPart.tsx | 204 + src/pages/parts/settings/SidebarPart.tsx | 211 + src/pages/parts/settings/ThemePart.tsx | 147 + src/pages/parts/util/LargeTextPart.tsx | 23 + src/pages/parts/util/PageTitle.tsx | 20 + src/pages/parts/util/WarningPart.tsx | 14 + src/setup/App.tsx | 162 + src/setup/Layout.tsx | 25 + src/setup/chromecast.ts | 30 + src/setup/config.ts | 125 + src/setup/constants.ts | 6 + src/setup/ga.ts | 9 + src/setup/i18n.ts | 27 + src/setup/pwa.ts | 27 + src/stores/__old/DONT_TOUCH_THIS_FOLDER | 1 + src/stores/__old/bookmark/store.ts | 59 + src/stores/__old/bookmark/types.ts | 5 + src/stores/__old/imports.ts | 4 + src/stores/__old/migrations.ts | 177 + src/stores/__old/settings/store.ts | 68 + src/stores/__old/settings/types.ts | 34 + src/stores/__old/utils.ts | 11 + src/stores/__old/volume/store.ts | 29 + src/stores/__old/watched/migrations/v2.ts | 217 + src/stores/__old/watched/migrations/v3.ts | 93 + src/stores/__old/watched/migrations/v4.ts | 77 + src/stores/__old/watched/store.ts | 49 + src/stores/__old/watched/types.ts | 22 + src/stores/auth/index.ts | 87 + src/stores/banner/BannerLocation.tsx | 63 + src/stores/banner/index.ts | 96 + src/stores/bookmarks/BookmarkSyncer.tsx | 80 + src/stores/bookmarks/index.ts | 102 + src/stores/history/index.ts | 55 + src/stores/language/index.tsx | 54 + src/stores/onboarding/index.tsx | 22 + src/stores/overlay/store.ts | 52 + src/stores/player/slices/casting.ts | 47 + src/stores/player/slices/display.ts | 119 + src/stores/player/slices/interface.ts | 115 + src/stores/player/slices/playing.ts | 41 + src/stores/player/slices/progress.ts | 25 + src/stores/player/slices/source.ts | 210 + src/stores/player/slices/thumbnails.ts | 115 + src/stores/player/slices/types.ts | 23 + src/stores/player/store.ts | 23 + src/stores/player/types.ts | 20 + src/stores/player/utils/qualities.ts | 120 + src/stores/preferences/index.tsx | 24 + src/stores/progress/ProgressSyncer.tsx | 82 + src/stores/progress/index.ts | 181 + src/stores/progress/utils.ts | 83 + src/stores/quality/index.ts | 38 + src/stores/subtitles/SettingsSyncer.tsx | 38 + src/stores/subtitles/index.ts | 104 + src/stores/theme/index.tsx | 45 + src/stores/turnstile/index.tsx | 137 + src/stores/volume/index.ts | 40 + src/utils/cache.ts | 101 + src/utils/cdn.ts | 16 + src/utils/detectFeatures.ts | 79 + src/utils/events.ts | 34 + src/utils/formatSeconds.ts | 25 + src/utils/language.ts | 198 + src/utils/mediaTypes.ts | 7 + src/utils/onboarding.ts | 23 + src/utils/proxyUrls.ts | 77 + src/utils/timestamp.ts | 14 + src/utils/typeguard.ts | 5 + tailwind.config.ts | 51 + themes/all.ts | 11 + themes/default.ts | 339 + themes/index.ts | 9 + themes/list/blue.ts | 259 + themes/list/gray.ts | 259 + themes/list/red.ts | 259 + themes/list/teal.ts | 259 + themes/types.ts | 15 + tsconfig.json | 28 + vite.config.mts | 173 + 447 files changed, 50556 insertions(+) create mode 100644 .dockerignore create mode 100644 .editorconfig create mode 100644 .eslintrc.js create mode 100644 .gitattributes create mode 100644 .github/CODEOWNERS create mode 100644 .github/CODE_OF_CONDUCT.md create mode 100644 .github/CONTRIBUTING.md create mode 100644 .github/ISSUE_TEMPLATE/bug-report.yml create mode 100644 .github/ISSUE_TEMPLATE/feature-request.yml create mode 100644 .github/SECURITY.md create mode 100644 .github/logo-dark.svg create mode 100644 .github/logo-light.svg create mode 100644 .github/pull_request_template.md create mode 100644 .github/workflows/deploying.yml create mode 100644 .github/workflows/linting_testing.yml create mode 100644 .gitignore create mode 100644 .npmrc create mode 100644 .vscode/extensions.json create mode 100644 .vscode/settings.json create mode 100644 Dockerfile create mode 100644 LICENSE.md create mode 100644 README.md create mode 100644 example.env create mode 100644 index.html create mode 100644 package.json create mode 100644 plugins/.gitignore create mode 100644 plugins/figmaTokensToThemeTokens.mjs create mode 100644 plugins/handlebars.ts create mode 100644 pnpm-lock.yaml create mode 100644 postcss.config.js create mode 100644 prettierrc.js create mode 100644 public/_headers create mode 100644 public/_redirects create mode 100644 public/android-chrome-192x192.png create mode 100644 public/android-chrome-512x512.png create mode 100644 public/apple-touch-icon.png create mode 100644 public/browserconfig.xml create mode 100644 public/config.js create mode 100644 public/favicon-16x16.png create mode 100644 public/favicon-32x32.png create mode 100644 public/favicon.ico create mode 100644 public/flags/galicia.svg create mode 100644 public/flags/skull.svg create mode 100644 public/flags/tokiPona.svg create mode 100644 public/flixico.jpg create mode 100644 public/lightbar-images/fishie.png create mode 100644 public/lightbar-images/santa.png create mode 100644 public/lightbar-images/snowflake.svg create mode 100644 public/mstile-150x150.png create mode 100644 public/ping.txt create mode 100644 public/robots.txt create mode 100644 public/safari-pinned-tab.svg create mode 100644 public/splash_screens/10.2__iPad_landscape.png create mode 100644 public/splash_screens/10.2__iPad_portrait.png create mode 100644 public/splash_screens/10.5__iPad_Air_landscape.png create mode 100644 public/splash_screens/10.5__iPad_Air_portrait.png create mode 100644 public/splash_screens/10.9__iPad_Air_landscape.png create mode 100644 public/splash_screens/10.9__iPad_Air_portrait.png create mode 100644 public/splash_screens/11__iPad_Pro__10.5__iPad_Pro_landscape.png create mode 100644 public/splash_screens/11__iPad_Pro__10.5__iPad_Pro_portrait.png create mode 100644 public/splash_screens/12.9__iPad_Pro_landscape.png create mode 100644 public/splash_screens/12.9__iPad_Pro_portrait.png create mode 100644 public/splash_screens/4__iPhone_SE__iPod_touch_5th_generation_and_later_landscape.png create mode 100644 public/splash_screens/4__iPhone_SE__iPod_touch_5th_generation_and_later_portrait.png create mode 100644 public/splash_screens/8.3__iPad_Mini_landscape.png create mode 100644 public/splash_screens/8.3__iPad_Mini_portrait.png create mode 100644 public/splash_screens/9.7__iPad_Pro__7.9__iPad_mini__9.7__iPad_Air__9.7__iPad_landscape.png create mode 100644 public/splash_screens/9.7__iPad_Pro__7.9__iPad_mini__9.7__iPad_Air__9.7__iPad_portrait.png create mode 100644 public/splash_screens/iPhone_11_Pro_Max__iPhone_XS_Max_landscape.png create mode 100644 public/splash_screens/iPhone_11_Pro_Max__iPhone_XS_Max_portrait.png create mode 100644 public/splash_screens/iPhone_11__iPhone_XR_landscape.png create mode 100644 public/splash_screens/iPhone_11__iPhone_XR_portrait.png create mode 100644 public/splash_screens/iPhone_13_mini__iPhone_12_mini__iPhone_11_Pro__iPhone_XS__iPhone_X_landscape.png create mode 100644 public/splash_screens/iPhone_13_mini__iPhone_12_mini__iPhone_11_Pro__iPhone_XS__iPhone_X_portrait.png create mode 100644 public/splash_screens/iPhone_14_Plus__iPhone_13_Pro_Max__iPhone_12_Pro_Max_landscape.png create mode 100644 public/splash_screens/iPhone_14_Plus__iPhone_13_Pro_Max__iPhone_12_Pro_Max_portrait.png create mode 100644 public/splash_screens/iPhone_14__iPhone_13_Pro__iPhone_13__iPhone_12_Pro__iPhone_12_landscape.png create mode 100644 public/splash_screens/iPhone_14__iPhone_13_Pro__iPhone_13__iPhone_12_Pro__iPhone_12_portrait.png create mode 100644 public/splash_screens/iPhone_15_Pro_Max__iPhone_15_Plus__iPhone_14_Pro_Max_landscape.png create mode 100644 public/splash_screens/iPhone_15_Pro_Max__iPhone_15_Plus__iPhone_14_Pro_Max_portrait.png create mode 100644 public/splash_screens/iPhone_15_Pro__iPhone_15__iPhone_14_Pro_landscape.png create mode 100644 public/splash_screens/iPhone_15_Pro__iPhone_15__iPhone_14_Pro_portrait.png create mode 100644 public/splash_screens/iPhone_8_Plus__iPhone_7_Plus__iPhone_6s_Plus__iPhone_6_Plus_landscape.png create mode 100644 public/splash_screens/iPhone_8_Plus__iPhone_7_Plus__iPhone_6s_Plus__iPhone_6_Plus_portrait.png create mode 100644 public/splash_screens/iPhone_8__iPhone_7__iPhone_6s__iPhone_6__4.7__iPhone_SE_landscape.png create mode 100644 public/splash_screens/iPhone_8__iPhone_7__iPhone_6s__iPhone_6__4.7__iPhone_SE_portrait.png create mode 100644 public/splash_screens/icon.png create mode 100644 src/@types/country-language.d.ts create mode 100644 src/assets/README.md create mode 100644 src/assets/css/index.css create mode 100644 src/assets/languages.ts create mode 100644 src/assets/locales/ar.json create mode 100644 src/assets/locales/bg.json create mode 100644 src/assets/locales/bn.json create mode 100644 src/assets/locales/ca.json create mode 100644 src/assets/locales/cs.json create mode 100644 src/assets/locales/de.json create mode 100644 src/assets/locales/el.json create mode 100644 src/assets/locales/en.json create mode 100644 src/assets/locales/es.json create mode 100644 src/assets/locales/et.json create mode 100644 src/assets/locales/fa.json create mode 100644 src/assets/locales/fi-FI.json create mode 100644 src/assets/locales/fr.json create mode 100644 src/assets/locales/gl.json create mode 100644 src/assets/locales/gu.json create mode 100644 src/assets/locales/he.json create mode 100644 src/assets/locales/hi.json create mode 100644 src/assets/locales/id.json create mode 100644 src/assets/locales/is-IS.json create mode 100644 src/assets/locales/it.json create mode 100644 src/assets/locales/ja.json create mode 100644 src/assets/locales/km.json create mode 100644 src/assets/locales/ko.json create mode 100644 src/assets/locales/lv.json create mode 100644 src/assets/locales/minion.json create mode 100644 src/assets/locales/ne.json create mode 100644 src/assets/locales/nl.json create mode 100644 src/assets/locales/nv.json create mode 100644 src/assets/locales/pa.json create mode 100644 src/assets/locales/pirate.json create mode 100644 src/assets/locales/pl.json create mode 100644 src/assets/locales/pt-BR.json create mode 100644 src/assets/locales/pt-PT.json create mode 100644 src/assets/locales/ro.json create mode 100644 src/assets/locales/ru.json create mode 100644 src/assets/locales/sl.json create mode 100644 src/assets/locales/sv.json create mode 100644 src/assets/locales/ta.json create mode 100644 src/assets/locales/th.json create mode 100644 src/assets/locales/tok.json create mode 100644 src/assets/locales/tr.json create mode 100644 src/assets/locales/uk.json create mode 100644 src/assets/locales/vi.json create mode 100644 src/assets/locales/zh-Hant.json create mode 100644 src/assets/locales/zh.json create mode 100644 src/assets/templates/opensearch.xml.hbs create mode 100644 src/backend/accounts/auth.ts create mode 100644 src/backend/accounts/bookmarks.ts create mode 100644 src/backend/accounts/crypto.ts create mode 100644 src/backend/accounts/import.ts create mode 100644 src/backend/accounts/login.ts create mode 100644 src/backend/accounts/meta.ts create mode 100644 src/backend/accounts/progress.ts create mode 100644 src/backend/accounts/register.ts create mode 100644 src/backend/accounts/sessions.ts create mode 100644 src/backend/accounts/settings.ts create mode 100644 src/backend/accounts/user.ts create mode 100644 src/backend/extension/compatibility.ts create mode 100644 src/backend/extension/messaging.ts create mode 100644 src/backend/extension/plasmo.ts create mode 100644 src/backend/extension/request.ts create mode 100644 src/backend/extension/streams.ts create mode 100644 src/backend/helpers/fetch.ts create mode 100644 src/backend/helpers/providerApi.ts create mode 100644 src/backend/helpers/report.ts create mode 100644 src/backend/helpers/subs.ts create mode 100644 src/backend/metadata/getmeta.ts create mode 100644 src/backend/metadata/justwatch.ts create mode 100644 src/backend/metadata/search.ts create mode 100644 src/backend/metadata/tmdb.ts create mode 100644 src/backend/metadata/types/justwatch.ts create mode 100644 src/backend/metadata/types/mw.ts create mode 100644 src/backend/metadata/types/tmdb.ts create mode 100644 src/backend/providers/fetchers.ts create mode 100644 src/backend/providers/providers.ts create mode 100644 src/components/Avatar.tsx create mode 100644 src/components/FlagIcon.tsx create mode 100644 src/components/Icon.tsx create mode 100644 src/components/LinksDropdown.tsx create mode 100644 src/components/UserIcon.tsx create mode 100644 src/components/buttons/Button.tsx create mode 100644 src/components/buttons/EditButton.tsx create mode 100644 src/components/buttons/IconPatch.tsx create mode 100644 src/components/buttons/Toggle.tsx create mode 100644 src/components/form/ColorPicker.tsx create mode 100644 src/components/form/Dropdown.tsx create mode 100644 src/components/form/IconPicker.tsx create mode 100644 src/components/form/PassphraseDisplay.tsx create mode 100644 src/components/form/SearchBar.tsx create mode 100644 src/components/layout/Box.tsx create mode 100644 src/components/layout/BrandPill.tsx create mode 100644 src/components/layout/Footer.tsx create mode 100644 src/components/layout/IconPill.tsx create mode 100644 src/components/layout/LargeCard.tsx create mode 100644 src/components/layout/Loading.tsx create mode 100644 src/components/layout/Navigation.tsx create mode 100644 src/components/layout/ProgressRing.tsx create mode 100644 src/components/layout/SectionHeading.tsx create mode 100644 src/components/layout/SettingsCard.tsx create mode 100644 src/components/layout/Sidebar.tsx create mode 100644 src/components/layout/Spinner.css create mode 100644 src/components/layout/Spinner.tsx create mode 100644 src/components/layout/Stepper.tsx create mode 100644 src/components/layout/ThinContainer.tsx create mode 100644 src/components/layout/WideContainer.tsx create mode 100644 src/components/media/MediaCard.tsx create mode 100644 src/components/media/MediaGrid.tsx create mode 100644 src/components/media/WatchedMediaCard.tsx create mode 100644 src/components/overlays/Modal.tsx create mode 100644 src/components/overlays/OverlayAnchor.tsx create mode 100644 src/components/overlays/OverlayDisplay.tsx create mode 100644 src/components/overlays/OverlayPage.tsx create mode 100644 src/components/overlays/OverlayRouter.tsx create mode 100644 src/components/overlays/positions/OverlayAnchorPosition.tsx create mode 100644 src/components/overlays/positions/OverlayMobilePosition.tsx create mode 100644 src/components/player/Player.tsx create mode 100644 src/components/player/README.md create mode 100644 src/components/player/atoms/Airplay.tsx create mode 100644 src/components/player/atoms/AutoPlayStart.tsx create mode 100644 src/components/player/atoms/CastingNotification.tsx create mode 100644 src/components/player/atoms/Chromecast.tsx create mode 100644 src/components/player/atoms/EpisodeTitle.tsx create mode 100644 src/components/player/atoms/Episodes.tsx create mode 100644 src/components/player/atoms/Fullscreen.tsx create mode 100644 src/components/player/atoms/LoadingSpinner.tsx create mode 100644 src/components/player/atoms/NextEpisodeButton.tsx create mode 100644 src/components/player/atoms/Pause.tsx create mode 100644 src/components/player/atoms/Pip.tsx create mode 100644 src/components/player/atoms/ProgressBar.tsx create mode 100644 src/components/player/atoms/Settings.tsx create mode 100644 src/components/player/atoms/Skips.tsx create mode 100644 src/components/player/atoms/Time.tsx create mode 100644 src/components/player/atoms/Title.tsx create mode 100644 src/components/player/atoms/Volume.tsx create mode 100644 src/components/player/atoms/VolumeChangedPopout.tsx create mode 100644 src/components/player/atoms/index.ts create mode 100644 src/components/player/atoms/settings/CaptionSettingsView.tsx create mode 100644 src/components/player/atoms/settings/CaptionsView.tsx create mode 100644 src/components/player/atoms/settings/Downloads.tsx create mode 100644 src/components/player/atoms/settings/PlaybackSettingsView.tsx create mode 100644 src/components/player/atoms/settings/QualityView.tsx create mode 100644 src/components/player/atoms/settings/SettingsMenu.tsx create mode 100644 src/components/player/atoms/settings/SourceSelectingView.tsx create mode 100644 src/components/player/base/BackLink.tsx create mode 100644 src/components/player/base/BlackOverlay.tsx create mode 100644 src/components/player/base/BottomControls.tsx create mode 100644 src/components/player/base/CenterControls.tsx create mode 100644 src/components/player/base/CenterMobileControls.tsx create mode 100644 src/components/player/base/Container.tsx create mode 100644 src/components/player/base/LeftSideControls.tsx create mode 100644 src/components/player/base/SubtitleView.tsx create mode 100644 src/components/player/base/TopControls.tsx create mode 100644 src/components/player/display/base.ts create mode 100644 src/components/player/display/chromecast.ts create mode 100644 src/components/player/display/displayInterface.ts create mode 100644 src/components/player/hooks/useCaptions.ts create mode 100644 src/components/player/hooks/useInitializePlayer.ts create mode 100644 src/components/player/hooks/usePlayer.ts create mode 100644 src/components/player/hooks/usePlayerMeta.ts create mode 100644 src/components/player/hooks/useShouldShowControls.tsx create mode 100644 src/components/player/hooks/useSlashFocus.ts create mode 100644 src/components/player/hooks/useSourceSelection.ts create mode 100644 src/components/player/hooks/useVolume.ts create mode 100644 src/components/player/index.tsx create mode 100644 src/components/player/internals/BookmarkButton.tsx create mode 100644 src/components/player/internals/Button.tsx create mode 100644 src/components/player/internals/CastingInternal.tsx create mode 100644 src/components/player/internals/ContextMenu/Cards.tsx create mode 100644 src/components/player/internals/ContextMenu/Input.tsx create mode 100644 src/components/player/internals/ContextMenu/Links.tsx create mode 100644 src/components/player/internals/ContextMenu/Misc.tsx create mode 100644 src/components/player/internals/ContextMenu/Sections.tsx create mode 100644 src/components/player/internals/ContextMenu/index.ts create mode 100644 src/components/player/internals/HeadUpdater.tsx create mode 100644 src/components/player/internals/KeyboardEvents.tsx create mode 100644 src/components/player/internals/MetaReporter.tsx create mode 100644 src/components/player/internals/ProgressSaver.tsx create mode 100644 src/components/player/internals/ScrapeCard.tsx create mode 100644 src/components/player/internals/StatusCircle.tsx create mode 100644 src/components/player/internals/ThumbnailScraper.tsx create mode 100644 src/components/player/internals/VideoClickTarget.tsx create mode 100644 src/components/player/internals/VideoContainer.tsx create mode 100644 src/components/player/utils/aired.ts create mode 100644 src/components/player/utils/captions.ts create mode 100644 src/components/player/utils/convertRunoutputToSource.ts create mode 100644 src/components/player/utils/handleBuffered.ts create mode 100644 src/components/player/utils/mediaErrorDetails.ts create mode 100644 src/components/player/utils/videoTracks.ts create mode 100644 src/components/text-inputs/AuthInputBox.tsx create mode 100644 src/components/text-inputs/TextInputControl.tsx create mode 100644 src/components/text/ArrowLink.tsx create mode 100644 src/components/text/DotList.tsx create mode 100644 src/components/text/HeroTitle.tsx create mode 100644 src/components/text/Link.tsx create mode 100644 src/components/text/Paragraph.tsx create mode 100644 src/components/text/SecondaryLabel.tsx create mode 100644 src/components/text/Title.tsx create mode 100644 src/components/utils/Divider.tsx create mode 100644 src/components/utils/ErrorLine.tsx create mode 100644 src/components/utils/Flare.css create mode 100644 src/components/utils/Flare.tsx create mode 100644 src/components/utils/Lightbar.css create mode 100644 src/components/utils/Lightbar.tsx create mode 100644 src/components/utils/Ol.tsx create mode 100644 src/components/utils/Text.tsx create mode 100644 src/components/utils/Transition.tsx create mode 100644 src/hooks/auth/useAuth.ts create mode 100644 src/hooks/auth/useAuthData.ts create mode 100644 src/hooks/auth/useAuthRestore.ts create mode 100644 src/hooks/auth/useBackendUrl.ts create mode 100644 src/hooks/useChromecastAvailable.ts create mode 100644 src/hooks/useDebounce.ts create mode 100644 src/hooks/useIsMobile.ts create mode 100644 src/hooks/useOverlayRouter.ts create mode 100644 src/hooks/usePing.ts create mode 100644 src/hooks/useProgressBar.ts create mode 100644 src/hooks/useProviderScrape.tsx create mode 100644 src/hooks/useQueryParams.ts create mode 100644 src/hooks/useRandomTranslation.ts create mode 100644 src/hooks/useSearchQuery.ts create mode 100644 src/hooks/useSettingsState.ts create mode 100644 src/index.tsx create mode 100644 src/pages/About.tsx create mode 100644 src/pages/DeveloperPage.tsx create mode 100644 src/pages/Dmca.tsx create mode 100644 src/pages/HomePage.tsx create mode 100644 src/pages/Login.tsx create mode 100644 src/pages/PlayerView.tsx create mode 100644 src/pages/Register.tsx create mode 100644 src/pages/Settings.tsx create mode 100644 src/pages/admin/AdminPage.tsx create mode 100644 src/pages/developer/TestView.tsx create mode 100644 src/pages/developer/VideoTesterView.tsx create mode 100644 src/pages/errors/ErrorBoundary.tsx create mode 100644 src/pages/errors/NotFoundPage.tsx create mode 100644 src/pages/layouts/ErrorLayout.tsx create mode 100644 src/pages/layouts/HomeLayout.tsx create mode 100644 src/pages/layouts/MinimalPageLayout.tsx create mode 100644 src/pages/layouts/PageLayout.tsx create mode 100644 src/pages/layouts/SubPageLayout.tsx create mode 100644 src/pages/onboarding/Onboarding.tsx create mode 100644 src/pages/onboarding/OnboardingExtension.tsx create mode 100644 src/pages/onboarding/OnboardingProxy.tsx create mode 100644 src/pages/onboarding/onboardingHooks.ts create mode 100644 src/pages/onboarding/utils.tsx create mode 100644 src/pages/parts/admin/BackendTestPart.tsx create mode 100644 src/pages/parts/admin/ConfigValuesPart.tsx create mode 100644 src/pages/parts/admin/TMDBTestPart.tsx create mode 100644 src/pages/parts/admin/WorkerTestPart.tsx create mode 100644 src/pages/parts/auth/AccountCreatePart.tsx create mode 100644 src/pages/parts/auth/LoginFormPart.tsx create mode 100644 src/pages/parts/auth/PassphraseGeneratePart.tsx create mode 100644 src/pages/parts/auth/TrustBackendPart.tsx create mode 100644 src/pages/parts/auth/VerifyPassphrasePart.tsx create mode 100644 src/pages/parts/errors/ErrorCard.tsx create mode 100644 src/pages/parts/errors/ErrorPart.tsx create mode 100644 src/pages/parts/errors/NotFoundPart.tsx create mode 100644 src/pages/parts/home/BookmarksPart.tsx create mode 100644 src/pages/parts/home/HeroPart.tsx create mode 100644 src/pages/parts/home/WatchingPart.tsx create mode 100644 src/pages/parts/migrations/MigrationPart.tsx create mode 100644 src/pages/parts/player/MetaPart.tsx create mode 100644 src/pages/parts/player/PlaybackErrorPart.tsx create mode 100644 src/pages/parts/player/PlayerPart.tsx create mode 100644 src/pages/parts/player/ScrapeErrorPart.tsx create mode 100644 src/pages/parts/player/ScrapingPart.tsx create mode 100644 src/pages/parts/search/SearchListPart.tsx create mode 100644 src/pages/parts/search/SearchLoadingPart.tsx create mode 100644 src/pages/parts/settings/AccountActionsPart.tsx create mode 100644 src/pages/parts/settings/AccountEditPart.tsx create mode 100644 src/pages/parts/settings/CaptionsPart.tsx create mode 100644 src/pages/parts/settings/ConnectionsPart.tsx create mode 100644 src/pages/parts/settings/DeviceListPart.tsx create mode 100644 src/pages/parts/settings/PreferencesPart.tsx create mode 100644 src/pages/parts/settings/ProfileEditModal.tsx create mode 100644 src/pages/parts/settings/RegisterCalloutPart.tsx create mode 100644 src/pages/parts/settings/SetupPart.tsx create mode 100644 src/pages/parts/settings/SidebarPart.tsx create mode 100644 src/pages/parts/settings/ThemePart.tsx create mode 100644 src/pages/parts/util/LargeTextPart.tsx create mode 100644 src/pages/parts/util/PageTitle.tsx create mode 100644 src/pages/parts/util/WarningPart.tsx create mode 100644 src/setup/App.tsx create mode 100644 src/setup/Layout.tsx create mode 100644 src/setup/chromecast.ts create mode 100644 src/setup/config.ts create mode 100644 src/setup/constants.ts create mode 100644 src/setup/ga.ts create mode 100644 src/setup/i18n.ts create mode 100644 src/setup/pwa.ts create mode 100644 src/stores/__old/DONT_TOUCH_THIS_FOLDER create mode 100644 src/stores/__old/bookmark/store.ts create mode 100644 src/stores/__old/bookmark/types.ts create mode 100644 src/stores/__old/imports.ts create mode 100644 src/stores/__old/migrations.ts create mode 100644 src/stores/__old/settings/store.ts create mode 100644 src/stores/__old/settings/types.ts create mode 100644 src/stores/__old/utils.ts create mode 100644 src/stores/__old/volume/store.ts create mode 100644 src/stores/__old/watched/migrations/v2.ts create mode 100644 src/stores/__old/watched/migrations/v3.ts create mode 100644 src/stores/__old/watched/migrations/v4.ts create mode 100644 src/stores/__old/watched/store.ts create mode 100644 src/stores/__old/watched/types.ts create mode 100644 src/stores/auth/index.ts create mode 100644 src/stores/banner/BannerLocation.tsx create mode 100644 src/stores/banner/index.ts create mode 100644 src/stores/bookmarks/BookmarkSyncer.tsx create mode 100644 src/stores/bookmarks/index.ts create mode 100644 src/stores/history/index.ts create mode 100644 src/stores/language/index.tsx create mode 100644 src/stores/onboarding/index.tsx create mode 100644 src/stores/overlay/store.ts create mode 100644 src/stores/player/slices/casting.ts create mode 100644 src/stores/player/slices/display.ts create mode 100644 src/stores/player/slices/interface.ts create mode 100644 src/stores/player/slices/playing.ts create mode 100644 src/stores/player/slices/progress.ts create mode 100644 src/stores/player/slices/source.ts create mode 100644 src/stores/player/slices/thumbnails.ts create mode 100644 src/stores/player/slices/types.ts create mode 100644 src/stores/player/store.ts create mode 100644 src/stores/player/types.ts create mode 100644 src/stores/player/utils/qualities.ts create mode 100644 src/stores/preferences/index.tsx create mode 100644 src/stores/progress/ProgressSyncer.tsx create mode 100644 src/stores/progress/index.ts create mode 100644 src/stores/progress/utils.ts create mode 100644 src/stores/quality/index.ts create mode 100644 src/stores/subtitles/SettingsSyncer.tsx create mode 100644 src/stores/subtitles/index.ts create mode 100644 src/stores/theme/index.tsx create mode 100644 src/stores/turnstile/index.tsx create mode 100644 src/stores/volume/index.ts create mode 100644 src/utils/cache.ts create mode 100644 src/utils/cdn.ts create mode 100644 src/utils/detectFeatures.ts create mode 100644 src/utils/events.ts create mode 100644 src/utils/formatSeconds.ts create mode 100644 src/utils/language.ts create mode 100644 src/utils/mediaTypes.ts create mode 100644 src/utils/onboarding.ts create mode 100644 src/utils/proxyUrls.ts create mode 100644 src/utils/timestamp.ts create mode 100644 src/utils/typeguard.ts create mode 100644 tailwind.config.ts create mode 100644 themes/all.ts create mode 100644 themes/default.ts create mode 100644 themes/index.ts create mode 100644 themes/list/blue.ts create mode 100644 themes/list/gray.ts create mode 100644 themes/list/red.ts create mode 100644 themes/list/teal.ts create mode 100644 themes/types.ts create mode 100644 tsconfig.json create mode 100644 vite.config.mts diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..bb73799b --- /dev/null +++ b/.dockerignore @@ -0,0 +1,6 @@ +.git +node_modules +build +.env.local +.github +.vscode diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..6c2eeb87 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,7 @@ +root = true + +[*] +end_of_line = lf +insert_final_newline = true +indent_size = 2 +indent_style = space diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 00000000..e9b54595 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,108 @@ +const a11yOff = Object.keys(require("eslint-plugin-jsx-a11y").rules).reduce( + (acc, rule) => { + acc[`jsx-a11y/${rule}`] = "off"; + return acc; + }, + {} +); + +module.exports = { + env: { + browser: true + }, + extends: [ + "airbnb", + "airbnb/hooks", + "plugin:@typescript-eslint/recommended", + "plugin:prettier/recommended" + ], + ignorePatterns: [ + "public/*", + "dist/*", + "/*.js", + "/*.ts", + "/*.mts", + "/plugins/*.ts", + "/plugins/*.mjs", + "/themes/**/*.ts" + ], + parser: "@typescript-eslint/parser", + parserOptions: { + project: "./tsconfig.json", + tsconfigRootDir: "./" + }, + settings: { + "import/resolver": { + typescript: { + project: "./tsconfig.json" + } + } + }, + plugins: ["@typescript-eslint", "import", "prettier"], + rules: { + "react/jsx-uses-react": "off", + "react/react-in-jsx-scope": "off", + "react/require-default-props": "off", + "react/destructuring-assignment": "off", + "no-underscore-dangle": "off", + "@typescript-eslint/no-explicit-any": "off", + "no-console": ["warn", { allow: ["warn", "error", "debug", "info"] }], + "@typescript-eslint/no-this-alias": "off", + "import/prefer-default-export": "off", + "@typescript-eslint/no-empty-function": "off", + "no-shadow": "off", + "@typescript-eslint/no-shadow": ["error"], + "no-restricted-syntax": "off", + "import/no-unresolved": ["error", { ignore: ["^virtual:"] }], + "react/jsx-props-no-spreading": "off", + "consistent-return": "off", + "no-continue": "off", + "no-eval": "off", + "no-await-in-loop": "off", + "no-nested-ternary": "off", + "prefer-destructuring": "off", + "no-param-reassign": "off", + "@typescript-eslint/no-unused-vars": ["warn", { argsIgnorePattern: "^_", varsIgnorePattern: "^_" }], + "react/jsx-filename-extension": [ + "error", + { extensions: [".js", ".tsx", ".jsx"] } + ], + "import/extensions": [ + "error", + "ignorePackages", + { + ts: "never", + tsx: "never" + } + ], + "import/order": [ + "error", + { + groups: [ + "builtin", + "external", + "internal", + ["sibling", "parent"], + "index", + "unknown" + ], + "newlines-between": "always", + alphabetize: { + order: "asc", + caseInsensitive: true + } + } + ], + "sort-imports": [ + "error", + { + ignoreCase: false, + ignoreDeclarationSort: true, + ignoreMemberSort: false, + memberSyntaxSortOrder: ["none", "all", "multiple", "single"], + allowSeparatedGroups: true + } + ], + ...a11yOff + } +}; diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..6313b56c --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +* text=auto eol=lf diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 00000000..74587723 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1 @@ +* @movie-web/project-leads diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..412c4af2 --- /dev/null +++ b/.github/CODE_OF_CONDUCT.md @@ -0,0 +1,128 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, religion, or sexual identity +and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the + overall community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or + advances of any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email + address, without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +codeofconduct@movie-web.app. +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series +of actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or +permanent ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within +the community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.0, available at +https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. + +Community Impact Guidelines were inspired by [Mozilla's code of conduct +enforcement ladder](https://github.com/mozilla/diversity). + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see the FAQ at +https://www.contributor-covenant.org/faq. Translations are available at +https://www.contributor-covenant.org/translations. diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md new file mode 100644 index 00000000..926899a8 --- /dev/null +++ b/.github/CONTRIBUTING.md @@ -0,0 +1,94 @@ +# Contributing Guidelines for movie-web + +Thank you for investing your time in contributing to our project! Your contribution will be reflected on [movie-web.app](https://movie-web.app). + +Please read our [Code of Conduct](./CODE_OF_CONDUCT.md) to keep our community approachable and respectable. + +## Contents + - [New Contributor Guide](#new-contributor-guide) + - [Requesting a feature or reporting a bug](#requesting-a-feature-or-reporting-a-bug) + - [Discord Server](#discord-server) + - [GitHub Issues](#github-issues) + - [Before you start](#before-you-start) + - [Contributing](#before-you-start) + - [Recommended Development Environment](#recommended-development-environment) + - [Tips](#tips) + - [Language Contributions](#language-contributions) + +## New contributor guide + +To get an overview of the project, read the [README](README.md). Here are some resources to help you get started with open-source contributions: + +- [Finding ways to contribute to open-source on GitHub](https://docs.github.com/en/get-started/exploring-projects-on-github/finding-ways-to-contribute-to-open-source-on-github) +- [Set up Git](https://docs.github.com/en/get-started/quickstart/set-up-git) +- [GitHub flow](https://docs.github.com/en/get-started/quickstart/github-flow) +- [Collaborating with pull requests](https://docs.github.com/en/github/collaborating-with-pull-requests) + + +## Requesting a feature or reporting a bug +There are two places where to request features or report bugs: + - GitHub Issues + - The movie-web Discord server + +### Discord Server +If you do not have a GitHub account or want to discuss a feature or bug with us before making an issue, you can join our Discord server. + +Discord Server + +### GitHub Issues +To make a GitHub issue for movie-web, please visit the [new issue page](https://github.com/movie-web/movie-web/issues/new/choose) where you can pick either the "Bug Report" or "Feature Request" template. + +When filling out an issue template, please include as much detail as possible and any screenshots or console logs as appropriate. + +After an issue is created, it will be assigned either the https://github.com/movie-web/movie-web/labels/bug or https://github.com/movie-web/movie-web/labels/feature label, along with https://github.com/movie-web/movie-web/labels/awaiting-approval. One of our maintainers will review your issue and, if it's accepted, will set the https://github.com/movie-web/movie-web/labels/approved label. + +## Before you start! +Before starting a contribution, please check your contribution is part of an open issue on [our issues page](https://github.com/movie-web/movie-web/issues?q=is%3Aopen+is%3Aissue+label%3Aapproved). + +GitHub issues are how we track our bugs and feature requests that will be implemented into movie-web - all contributions **must** have an issue and be approved by a maintainer before a pull request can be worked on. + +If a pull request is opened before an issue is created and accepted, you may risk having your pull request rejected! Always check with us before starting work on a feature - we don't want to waste your time! + +> **Note** +> The exception to this are language contributions, which are discussed in [this section](#language-contributions) + +Also, make sure that the issue you would like to work on has been given the https://github.com/movie-web/movie-web/labels/approved label by a maintainer. Otherwise, if we reject the issue, it means your work will have gone to waste! + +## Contributing +If you're here because you'd like to work on an issue, amazing! Thank you for even considering contributing to movie-web; it means a lot :heart: + +Firstly, make sure you've read the [Before you start!](#before-you-start) section! + +When you have found a GitHub issue you would like to work on, you can request to be assigned to the issue by commenting on the GitHub issue. + +If you are assigned to an issue but can't complete it for whatever reason, no problem! Just let us know, and we will open up the issue to have someone else assigned. + +### Recommended Development Environment +Our recommended development environment to work on movie-web is: +- [Visual Studio Code](https://code.visualstudio.com/) +- [ESLint Extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) +- [EditorConfig Extension](https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig) + +When opening Visual Studio Code, you will be prompted to install our recommended extensions if they are not installed for you. + +Our project is set up to enforce formatting and code style standards using ESLint. + +### Tips +Here are some tips to make sure that your pull requests are :pinched_fingers: first time: + +- KISS - Keep It Simple Soldier! - Simple code makes readable and efficient code! +- Follow standard best practices for TypeScript and React. +- Keep as much as possible to the style of movie-web. Look around our codebase to familiarise yourself with how we do things! +- Ensure to take note of the ESLint errors and warnings! **Do not ignore them!** They are there for a reason. +- Test, test, test! Make sure you thoroughly test the features you are contributing. + +### Language Contributions +Language contributions help movie-web massively, allowing people worldwide to use our app! + +We use weblate for crowdsourcing our translations. [Click here to go to our translation tool.](https://weblate.movie-web.app/projects/movie-web/website/) + +1. First make sure you make an account. (click the link above) +2. Click the language you want to help translate, if it's not listed you can click the plus top left to add a new language. +3. In the top right of the screen, click "translate" +4. Here you will be prompted a key to translate, fill in a translation and proceed to the next item by pressing "save and continue". +5. Thats all there is to it, every translation will eventually come through and be pushed with an update. This usually doesn't take longer than a week. diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml new file mode 100644 index 00000000..3bf7111e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug-report.yml @@ -0,0 +1,50 @@ +name: Bug Report +description: File a bug report +title: "[Bug]: " +labels: ["bug", "awaiting-approval"] +assignees: [] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to fill out this bug report! + + Please fill out with as much detail as possible + - type: textarea + id: what-happened + attributes: + label: What happened? + description: Also tell us, what did you expect to happen? + placeholder: Tell us what you see! + validations: + required: true + - type: dropdown + id: browsers + attributes: + label: What browsers are you seeing the problem on? + multiple: true + options: + - Firefox + - Chrome + - Safari + - Microsoft Edge + - Other (tell us in input box below) + - type: textarea + id: reproduce + attributes: + label: Steps to reproduce? + description: What steps have you taken to see the bug? (OPTIONAL) + placeholder: 1. ... + validations: + required: false + - type: textarea + id: other-info + attributes: + label: Other relevant information + description: | + Feel free to give us any more information that doesn't fit the above text boxes. + + Tip: You can attach files by clicking this textbox and dragging in files + validations: + required: false + diff --git a/.github/ISSUE_TEMPLATE/feature-request.yml b/.github/ISSUE_TEMPLATE/feature-request.yml new file mode 100644 index 00000000..9d5bb8be --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature-request.yml @@ -0,0 +1,26 @@ +name: Feature Request +description: Suggest a new feature +title: "[Feature]: " +labels: ["feature", "awaiting-approval"] +assignees: [] +body: + - type: textarea + id: what-feature + attributes: + label: What feature do you want to add? + placeholder: A new button! + validations: + required: true + - type: textarea + id: why-feature + attributes: + label: Why do you want to have this feature? + placeholder: A new button! + validations: + required: true + - type: textarea + id: other-details + attributes: + label: Any other details to share? + validations: + required: false diff --git a/.github/SECURITY.md b/.github/SECURITY.md new file mode 100644 index 00000000..83bf16ae --- /dev/null +++ b/.github/SECURITY.md @@ -0,0 +1,13 @@ +# Security Policy + +## Supported Versions + +The movie-web maintainers only support the latest version of movie-web published at https://movie-web.app. + +Support is not provided for any forks or mirrors of movie-web. + +## Reporting a Vulnerability + +There are two ways you can contact the movie-web maintainers to report a vulnerability: + - Email [security@movie-web.app](mailto:security@movie-web.app) + - Report the vulnerability in the [movie-web Discord server](https://discord.movie-web.app) diff --git a/.github/logo-dark.svg b/.github/logo-dark.svg new file mode 100644 index 00000000..e0258f10 --- /dev/null +++ b/.github/logo-dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/.github/logo-light.svg b/.github/logo-light.svg new file mode 100644 index 00000000..dc5a242f --- /dev/null +++ b/.github/logo-light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 00000000..c072b7f5 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,6 @@ +This pull request resolves #XXX + + - [ ] I have read and agreed to the [code of conduct](https://github.com/movie-web/movie-web/blob/dev/.github/CODE_OF_CONDUCT.md). + - [ ] I have read and complied with the [contributing guidelines](https://github.com/movie-web/movie-web/blob/dev/.github/CONTRIBUTING.md). + - [ ] What I'm implementing was assigned to me and is an [approved issue](https://github.com/movie-web/movie-web/issues?q=is%3Aopen+is%3Aissue+label%3Aapproved). For reference, please take a look at our [GitHub projects](https://github.com/movie-web/movie-web/projects). + - [ ] I have tested all of my changes. diff --git a/.github/workflows/deploying.yml b/.github/workflows/deploying.yml new file mode 100644 index 00000000..e07a60a5 --- /dev/null +++ b/.github/workflows/deploying.yml @@ -0,0 +1,181 @@ +name: Deploying + +on: + push: + branches: + - master + +jobs: + build_pwa: + name: Build PWA + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - uses: pnpm/action-setup@v2 + with: + version: 8 + + - name: Install Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: 'pnpm' + + - name: Install pnpm packages + run: pnpm install + + - name: Build project + run: pnpm run build:pwa + + - name: Upload production-ready build files + uses: actions/upload-artifact@v4 + with: + name: pwa + path: ./dist + + build: + name: Build + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - uses: pnpm/action-setup@v2 + with: + version: 8 + + - name: Install Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: 'pnpm' + + - name: Install pnpm packages + run: pnpm install + + - name: Build project + run: pnpm run build + + - name: Upload production-ready build files + uses: actions/upload-artifact@v4 + with: + name: normal + path: ./dist + + release: + name: Release + needs: [build, build_pwa] + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Download PWA artifact + uses: actions/download-artifact@v4 + with: + name: pwa + path: ./dist_pwa + + - name: Zip PWA files + run: cd dist_pwa && zip -r ../movie-web.pwa.zip . + + - name: Download normal artifact + uses: actions/download-artifact@v4 + with: + name: normal + path: ./dist_normal + + - name: Zip normal files + run: cd dist_normal && zip -r ../movie-web.zip . + + - name: Get version + id: package-version + uses: martinbeentjes/npm-get-version-action@main + + - name: Create Release + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ steps.package-version.outputs.current-version }} + release_name: Movie web v${{ steps.package-version.outputs.current-version }} + draft: false + prerelease: false + + - name: Upload release (PWA) + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./movie-web.pwa.zip + asset_name: movie-web.pwa.zip + asset_content_type: application/zip + + - name: Upload Release (Normal) + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./movie-web.zip + asset_name: movie-web.zip + asset_content_type: application/zip + + registry: + name: Push to registry + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + id-token: write + + env: + REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }} + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup Docker buildx + uses: docker/setup-buildx-action@v3 + + - name: Get version + id: package-version + uses: martinbeentjes/npm-get-version-action@main + + - name: Log into registry ${{ env.REGISTRY }} + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract Docker metadata + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + flavor: | + latest=auto + tags: | + type=semver,pattern={{version}},value=v${{ steps.package-version.outputs.current-version }} + + - name: Build and push Docker image + id: build-and-push + uses: docker/build-push-action@v5 + with: + push: true + platforms: linux/amd64,linux/arm64 + context: . + labels: ${{ steps.meta.outputs.labels }} + tags: ${{ steps.meta.outputs.tags }} + cache-from: type=gha + cache-to: type=gha,mode=max diff --git a/.github/workflows/linting_testing.yml b/.github/workflows/linting_testing.yml new file mode 100644 index 00000000..c1d5f833 --- /dev/null +++ b/.github/workflows/linting_testing.yml @@ -0,0 +1,74 @@ +name: Linting and Testing + +on: + push: + branches: + - master + - dev + pull_request: + +jobs: + linting: + name: Run Linters + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - uses: pnpm/action-setup@v2 + with: + version: 8 + + - name: Install Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: 'pnpm' + + - name: Install pnpm packages + run: pnpm install + + - name: Run ESLint + run: pnpm run lint + + building: + name: Build project + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - uses: pnpm/action-setup@v2 + with: + version: 8 + + - name: Install Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: 'pnpm' + + - name: Install pnpm packages + run: pnpm install + + - name: Build Project + run: pnpm run build + + docker: + name: Build Docker + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup Docker buildx + uses: docker/setup-buildx-action@v3 + + - name: Build Docker image + uses: docker/build-push-action@v5 + with: + push: false + context: . diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..92594324 --- /dev/null +++ b/.gitignore @@ -0,0 +1,30 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +/dist +dev-dist +/stats.html + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* + +# other package managers +yarn.lock +package-lock.json + +# config +.env diff --git a/.npmrc b/.npmrc new file mode 100644 index 00000000..bf2e7648 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +shamefully-hoist=true diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 00000000..118c0efb --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,6 @@ +{ + "recommendations": [ + "dbaeumer.vscode-eslint", + "editorconfig.editorconfig" + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..741f0c0a --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,11 @@ +{ + "editor.formatOnSave": true, + "editor.defaultFormatter": "dbaeumer.vscode-eslint", + "eslint.format.enable": true, + "[json]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[typescriptreact]": { + "editor.defaultFormatter": "dbaeumer.vscode-eslint" + } +} \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..cc9b84be --- /dev/null +++ b/Dockerfile @@ -0,0 +1,18 @@ +FROM node:20-alpine as build +WORKDIR /app +ENV PNPM_HOME="/pnpm" +ENV PATH="$PNPM_HOME:$PATH" +RUN corepack enable + +COPY package.json ./ +COPY pnpm-lock.yaml ./ +RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile + +COPY . ./ +RUN pnpm run build + +# production environment +FROM nginx:stable-alpine +COPY --from=build /app/dist /usr/share/nginx/html +EXPOSE 80 +CMD ["nginx", "-g", "daemon off;"] diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 00000000..d71bce99 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 James Hawkins + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 00000000..7f4662a2 --- /dev/null +++ b/README.md @@ -0,0 +1,67 @@ + +

+

+

+ +
+ 🔵 discord 🟢 website +

+

+ +# ⚡What is movie-web? + +movie-web is a web app for watching movies easily. Check it out at movie-web.app. + +This service works by displaying video files from third-party providers inside an intuitive and aesthetic user interface. + +# 🔥Features + +- Automatic saving of progress - optionally synced to an account. +- Bookmark shows or movies, keep track of what you want to watch. +- Minimalistic interface that only shows whats required - no algorithm to consume you. + +## 🍄 Philosophy + +This project is meant to be simple and easy to use. Keep features minimal but polished. +We do not want this project to be yet another bulky streaming site, instead it aims for minimalism. + +On top of that, hosting should be as cheap and simple as possible. Just a static website with a proxy, with an optional backend if you want cross-device syncing. + +Content is fetched from third parties and scraping is fully done on the client. This means that the hoster has no files or media on their server. All files are streamed directly from the third parties. + +## ⚠️ Limitations + +- Due to being a static site, there can be no SSR +- To keep it cheap to host, amount of proxied requests need to be kept to a minimum +- Also to keep it cheap, no content must ever be streamed through the proxy. So only streams not protected by CORS headers. + +# 🧬 Running locally for development + +To run locally, you must first clone the repository. After that run the following commands in the root of the repository: +```bash +pnpm install +pnpm run dev +``` + +You have to also make an `.env` file to configure your environment. Inspire it from the content of `example.env`. + +To build production files, run: +```bash +pnpm build +``` + +> [!TIP] +> You must use pnpm (`npm i -g pnpm`) and run NodeJS 20 + +# 🥔 Selfhosting + +A simple guide has been written to assist in hosting your own instance of movie-web. Check it out below + +|[Selfhosting guide](https://docs.movie-web.app)| +|---| + +## 🤝 Thanks to all Contributors +This project would not be possible without our amazing contributors and the community. Thanks a lot! Keep rocking 🍻. + +[![Contributors](https://contrib.rocks/image?repo=movie-web/movie-web)](https://github.com/movie-web/movie-web/graphs/contributors) + diff --git a/example.env b/example.env new file mode 100644 index 00000000..65e2829f --- /dev/null +++ b/example.env @@ -0,0 +1,8 @@ +VITE_TMDB_READ_API_KEY=eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJiZmU0OGY4NjFkY2NmMjczMzUyMDdmMWVjYmVkNjNjNiIsInN1YiI6IjY1YjNmMWI0NTk0Yzk0MDE2MzNkZDBjNSIsInNjb3BlcyI6WyJhcGlfcmVhZCJdLCJ2ZXJzaW9uIjoxfQ.GiCKswc2u9NraBbujm0ykI5G3p-K9WJoHg40jYbFv4o +VITE_OPENSEARCH_ENABLED=false + +# make sure the cors proxy url does NOT have a slash at the end +VITE_CORS_PROXY_URL=https://flixweb-proxy.netlify.app + +# make sure the domain does NOT have a slash at the end +VITE_APP_DOMAIN=http://localhost:5173 diff --git a/index.html b/index.html new file mode 100644 index 00000000..4d7ea1cf --- /dev/null +++ b/index.html @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Sudo Flix + + {{#if opensearchEnabled }} + + + + + + {{/if}} + + + + +
+ + + + \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 00000000..d1ebc1c7 --- /dev/null +++ b/package.json @@ -0,0 +1,137 @@ +{ + "name": "sudo-flix", + "version": "4.4.2", + "private": true, + "homepage": "https://movie-web.app", + "scripts": { + "dev": "vite", + "build": "vite build", + "build:pwa": "cross-env VITE_PWA_ENABLED=true vite build", + "test": "vitest run", + "preview": "vite preview", + "lint": "eslint --ext .tsx,.ts src", + "lint:fix": "eslint --fix --ext .tsx,.ts src", + "lint:report": "eslint --ext .tsx,.ts --output-file eslint_report.json --format json src", + "preinstall": "npx -y only-allow pnpm" + }, + "browserslist": { + "production": [ + "defaults", + "chrome > 90" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + }, + "dependencies": { + "@formkit/auto-animate": "^0.8.1", + "@headlessui/react": "^1.7.17", + "@ladjs/country-language": "^1.0.3", + "@movie-web/providers": "^2.2.0", + "@noble/hashes": "^1.3.3", + "@plasmohq/messaging": "^0.6.1", + "@react-spring/web": "^9.7.3", + "@scure/bip39": "^1.2.2", + "@sozialhelden/ietf-language-tags": "^5.4.2", + "@types/node-forge": "^1.3.10", + "classnames": "^2.3.2", + "core-js": "^3.34.0", + "detect-browser": "^5.3.0", + "dompurify": "^3.0.6", + "flag-icons": "^7.1.0", + "focus-trap-react": "^10.2.3", + "fscreen": "^1.2.0", + "fuse.js": "^7.0.0", + "hls.js": "^1.4.14", + "i18next": "^23.7.11", + "immer": "^10.0.3", + "jwt-decode": "^4.0.0", + "lodash.isequal": "^4.5.0", + "million": "^2.6.4", + "nanoid": "^5.0.4", + "node-forge": "^1.3.1", + "ofetch": "^1.3.3", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-ga4": "^2.1.0", + "react-google-recaptcha-v3": "^1.10.1", + "react-helmet-async": "^2.0.4", + "react-i18next": "^14.0.0", + "react-lazy-with-preload": "^2.2.1", + "react-router-dom": "^6.21.1", + "react-sticky-el": "^2.1.0", + "react-turnstile": "^1.1.2", + "react-use": "^17.4.2", + "semver": "^7.5.4", + "slugify": "^1.6.6", + "subsrt-ts": "^2.1.2", + "zustand": "^4.4.7" + }, + "devDependencies": { + "@babel/core": "^7.23.6", + "@babel/preset-env": "^7.23.6", + "@babel/preset-typescript": "^7.23.3", + "@rollup/wasm-node": "^4.9.4", + "@types/chromecast-caf-sender": "^1.0.8", + "@types/crypto-js": "^4.2.1", + "@types/dompurify": "^3.0.5", + "@types/fscreen": "^1.0.4", + "@types/lodash.isequal": "^4.5.8", + "@types/lodash.throttle": "^4.1.9", + "@types/node": "^20.10.5", + "@types/pako": "^2.0.3", + "@types/react": "^18.2.45", + "@types/react-dom": "^18.2.18", + "@types/react-helmet": "^6.1.11", + "@types/react-router": "^5.1.20", + "@types/react-router-dom": "^5.3.3", + "@types/react-stickynode": "^4.0.3", + "@types/react-transition-group": "^4.4.10", + "@types/semver": "^7.5.6", + "@typescript-eslint/eslint-plugin": "^6.15.0", + "@typescript-eslint/parser": "^6.15.0", + "@vitejs/plugin-react": "^4.2.1", + "autoprefixer": "^10.4.16", + "cross-env": "^7.0.3", + "eslint": "^8.56.0", + "eslint-config-airbnb": "19.0.4", + "eslint-config-prettier": "^9.1.0", + "eslint-import-resolver-typescript": "^3.6.1", + "eslint-plugin-import": "^2.29.1", + "eslint-plugin-jsx-a11y": "^6.8.0", + "eslint-plugin-prettier": "^5.1.1", + "eslint-plugin-react": "7.33.2", + "eslint-plugin-react-hooks": "4.6.0", + "glob": "^10.3.10", + "handlebars": "^4.7.8", + "jsdom": "^23.0.1", + "postcss": "^8.4.32", + "postcss-rtl": "^2.0.0", + "postcss-rtlcss": "^4.0.9", + "prettier": "^3.1.1", + "prettier-plugin-tailwindcss": "^0.5.9", + "rollup-plugin-visualizer": "^5.11.0", + "tailwind-scrollbar": "^3.0.5", + "tailwindcss": "^3.4.0", + "tailwindcss-themer": "^4.0.0", + "type-fest": "^4.8.3", + "typescript": "^5.3.3", + "vite": "^5.0.12", + "vite-plugin-checker": "^0.6.2", + "vite-plugin-package-version": "^1.1.0", + "vite-plugin-pwa": "^0.17.4", + "vite-plugin-static-copy": "^1.0.0", + "vitest": "^1.1.0" + }, + "pnpm": { + "overrides": { + "get-func-name@<2.0.1": ">=2.0.1", + "postcss@<8.4.31": ">=8.4.31", + "@babel/traverse@<7.23.2": ">=7.23.2", + "crypto-js@<4.2.0": ">=4.2.0", + "rollup": "npm:@rollup/wasm-node" + } + } +} diff --git a/plugins/.gitignore b/plugins/.gitignore new file mode 100644 index 00000000..e9ee2f2d --- /dev/null +++ b/plugins/.gitignore @@ -0,0 +1 @@ +figmaTokens.json diff --git a/plugins/figmaTokensToThemeTokens.mjs b/plugins/figmaTokensToThemeTokens.mjs new file mode 100644 index 00000000..5be386d0 --- /dev/null +++ b/plugins/figmaTokensToThemeTokens.mjs @@ -0,0 +1,43 @@ +/** + * This script turns output from the figma plugin "style to JSON" into a usuable theme. + * It expects a format of "themes/{NAME}/anythinghere" + */ + +import fs from "fs"; + +const fileLocation = "./figmaTokens.json"; +const theme = "blue"; + +const fileContents = fs.readFileSync(fileLocation, { + encoding: "utf-8" +}); +const tokens = JSON.parse(fileContents); + +const themeTokens = tokens.themes[theme]; +const output = {}; + +function setKey(obj, key, defaultVal) { + const realKey = key.match(/^\d+$/g) ? "c" + key : key; + if (obj[key]) return obj[key]; + obj[realKey] = defaultVal; + return obj[realKey]; +} + +function handleToken(token, path) { + if (typeof token.name === "string" && typeof token.description === "string") { + let ref = output; + const lastKey = path.pop(); + path.forEach((v) => { + ref = setKey(ref, v, {}); + }); + setKey(ref, lastKey, token.hex); + return; + } + + for (let key in token) { + handleToken(token[key], [...path, key]); + } +} + +handleToken(themeTokens, []); +console.log(JSON.stringify(output, null, 2)); diff --git a/plugins/handlebars.ts b/plugins/handlebars.ts new file mode 100644 index 00000000..a8ab0170 --- /dev/null +++ b/plugins/handlebars.ts @@ -0,0 +1,41 @@ +import { globSync } from "glob"; +import { viteStaticCopy } from 'vite-plugin-static-copy' +import { PluginOption } from "vite"; +import Handlebars from "handlebars"; +import path from "path"; + +export const handlebars = (options: { vars?: Record } = {}): PluginOption[] => { + const files = globSync("src/assets/**/**.hbs"); + + function render(content: string): string { + const template = Handlebars.compile(content); + return template(options?.vars ?? {}); + } + + return [ + { + name: 'hbs-templating', + enforce: "pre", + transformIndexHtml: { + order: 'pre', + handler(html) { + return render(html); + } + }, + }, + viteStaticCopy({ + silent: true, + targets: files.map(file => ({ + src: file, + dest: '', + rename: path.basename(file).slice(0, -4), // remove .hbs file extension + transform: { + encoding: 'utf8', + handler(content: string) { + return render(content); + } + } + })) + }) + ] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 00000000..97b59603 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,7534 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +overrides: + get-func-name@<2.0.1: '>=2.0.1' + postcss@<8.4.31: '>=8.4.31' + '@babel/traverse@<7.23.2': '>=7.23.2' + crypto-js@<4.2.0: '>=4.2.0' + rollup: npm:@rollup/wasm-node + +dependencies: + '@formkit/auto-animate': + specifier: ^0.8.1 + version: 0.8.1 + '@headlessui/react': + specifier: ^1.7.17 + version: 1.7.17(react-dom@18.2.0)(react@18.2.0) + '@ladjs/country-language': + specifier: ^1.0.3 + version: 1.0.3 + '@movie-web/providers': + specifier: ^2.2.0 + version: 2.2.0 + '@noble/hashes': + specifier: ^1.3.3 + version: 1.3.3 + '@plasmohq/messaging': + specifier: ^0.6.1 + version: 0.6.1(react@18.2.0) + '@react-spring/web': + specifier: ^9.7.3 + version: 9.7.3(react-dom@18.2.0)(react@18.2.0) + '@scure/bip39': + specifier: ^1.2.2 + version: 1.2.2 + '@sozialhelden/ietf-language-tags': + specifier: ^5.4.2 + version: 5.4.2 + '@types/node-forge': + specifier: ^1.3.10 + version: 1.3.10 + classnames: + specifier: ^2.3.2 + version: 2.3.2 + core-js: + specifier: ^3.34.0 + version: 3.34.0 + detect-browser: + specifier: ^5.3.0 + version: 5.3.0 + dompurify: + specifier: ^3.0.6 + version: 3.0.6 + flag-icons: + specifier: ^7.1.0 + version: 7.1.0 + focus-trap-react: + specifier: ^10.2.3 + version: 10.2.3(prop-types@15.8.1)(react-dom@18.2.0)(react@18.2.0) + fscreen: + specifier: ^1.2.0 + version: 1.2.0 + fuse.js: + specifier: ^7.0.0 + version: 7.0.0 + hls.js: + specifier: ^1.4.14 + version: 1.4.14 + i18next: + specifier: ^23.7.11 + version: 23.7.11 + immer: + specifier: ^10.0.3 + version: 10.0.3 + jwt-decode: + specifier: ^4.0.0 + version: 4.0.0 + lodash.isequal: + specifier: ^4.5.0 + version: 4.5.0 + million: + specifier: ^2.6.4 + version: 2.6.4 + nanoid: + specifier: ^5.0.4 + version: 5.0.4 + node-forge: + specifier: ^1.3.1 + version: 1.3.1 + ofetch: + specifier: ^1.3.3 + version: 1.3.3 + react: + specifier: ^18.2.0 + version: 18.2.0 + react-dom: + specifier: ^18.2.0 + version: 18.2.0(react@18.2.0) + react-ga4: + specifier: ^2.1.0 + version: 2.1.0 + react-google-recaptcha-v3: + specifier: ^1.10.1 + version: 1.10.1(react-dom@18.2.0)(react@18.2.0) + react-helmet-async: + specifier: ^2.0.4 + version: 2.0.4(react-dom@18.2.0)(react@18.2.0) + react-i18next: + specifier: ^14.0.0 + version: 14.0.0(i18next@23.7.11)(react-dom@18.2.0)(react@18.2.0) + react-lazy-with-preload: + specifier: ^2.2.1 + version: 2.2.1 + react-router-dom: + specifier: ^6.21.1 + version: 6.21.1(react-dom@18.2.0)(react@18.2.0) + react-sticky-el: + specifier: ^2.1.0 + version: 2.1.0(react-dom@18.2.0)(react@18.2.0) + react-turnstile: + specifier: ^1.1.2 + version: 1.1.2(react-dom@18.2.0)(react@18.2.0) + react-use: + specifier: ^17.4.2 + version: 17.4.2(react-dom@18.2.0)(react@18.2.0) + semver: + specifier: ^7.5.4 + version: 7.5.4 + slugify: + specifier: ^1.6.6 + version: 1.6.6 + subsrt-ts: + specifier: ^2.1.2 + version: 2.1.2 + zustand: + specifier: ^4.4.7 + version: 4.4.7(@types/react@18.2.45)(immer@10.0.3)(react@18.2.0) + +devDependencies: + '@babel/core': + specifier: ^7.23.6 + version: 7.23.6 + '@babel/preset-env': + specifier: ^7.23.6 + version: 7.23.6(@babel/core@7.23.6) + '@babel/preset-typescript': + specifier: ^7.23.3 + version: 7.23.3(@babel/core@7.23.6) + '@rollup/wasm-node': + specifier: ^4.9.4 + version: 4.9.4 + '@types/chromecast-caf-sender': + specifier: ^1.0.8 + version: 1.0.8 + '@types/crypto-js': + specifier: ^4.2.1 + version: 4.2.1 + '@types/dompurify': + specifier: ^3.0.5 + version: 3.0.5 + '@types/fscreen': + specifier: ^1.0.4 + version: 1.0.4 + '@types/lodash.isequal': + specifier: ^4.5.8 + version: 4.5.8 + '@types/lodash.throttle': + specifier: ^4.1.9 + version: 4.1.9 + '@types/node': + specifier: ^20.10.5 + version: 20.10.5 + '@types/pako': + specifier: ^2.0.3 + version: 2.0.3 + '@types/react': + specifier: ^18.2.45 + version: 18.2.45 + '@types/react-dom': + specifier: ^18.2.18 + version: 18.2.18 + '@types/react-helmet': + specifier: ^6.1.11 + version: 6.1.11 + '@types/react-router': + specifier: ^5.1.20 + version: 5.1.20 + '@types/react-router-dom': + specifier: ^5.3.3 + version: 5.3.3 + '@types/react-stickynode': + specifier: ^4.0.3 + version: 4.0.3 + '@types/react-transition-group': + specifier: ^4.4.10 + version: 4.4.10 + '@types/semver': + specifier: ^7.5.6 + version: 7.5.6 + '@typescript-eslint/eslint-plugin': + specifier: ^6.15.0 + version: 6.15.0(@typescript-eslint/parser@6.15.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': + specifier: ^6.15.0 + version: 6.15.0(eslint@8.56.0)(typescript@5.3.3) + '@vitejs/plugin-react': + specifier: ^4.2.1 + version: 4.2.1(vite@5.0.12) + autoprefixer: + specifier: ^10.4.16 + version: 10.4.16(postcss@8.4.32) + cross-env: + specifier: ^7.0.3 + version: 7.0.3 + eslint: + specifier: ^8.56.0 + version: 8.56.0 + eslint-config-airbnb: + specifier: 19.0.4 + version: 19.0.4(eslint-plugin-import@2.29.1)(eslint-plugin-jsx-a11y@6.8.0)(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.33.2)(eslint@8.56.0) + eslint-config-prettier: + specifier: ^9.1.0 + version: 9.1.0(eslint@8.56.0) + eslint-import-resolver-typescript: + specifier: ^3.6.1 + version: 3.6.1(@typescript-eslint/parser@6.15.0)(eslint-plugin-import@2.29.1)(eslint@8.56.0) + eslint-plugin-import: + specifier: ^2.29.1 + version: 2.29.1(@typescript-eslint/parser@6.15.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) + eslint-plugin-jsx-a11y: + specifier: ^6.8.0 + version: 6.8.0(eslint@8.56.0) + eslint-plugin-prettier: + specifier: ^5.1.1 + version: 5.1.1(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.1.1) + eslint-plugin-react: + specifier: 7.33.2 + version: 7.33.2(eslint@8.56.0) + eslint-plugin-react-hooks: + specifier: 4.6.0 + version: 4.6.0(eslint@8.56.0) + glob: + specifier: ^10.3.10 + version: 10.3.10 + handlebars: + specifier: ^4.7.8 + version: 4.7.8 + jsdom: + specifier: ^23.0.1 + version: 23.0.1 + postcss: + specifier: ^8.4.32 + version: 8.4.32 + postcss-rtl: + specifier: ^2.0.0 + version: 2.0.0(postcss@8.4.32) + postcss-rtlcss: + specifier: ^4.0.9 + version: 4.0.9(postcss@8.4.32) + prettier: + specifier: ^3.1.1 + version: 3.1.1 + prettier-plugin-tailwindcss: + specifier: ^0.5.9 + version: 0.5.9(prettier@3.1.1) + rollup-plugin-visualizer: + specifier: ^5.11.0 + version: 5.11.0(@rollup/wasm-node@4.12.0) + tailwind-scrollbar: + specifier: ^3.0.5 + version: 3.0.5(tailwindcss@3.4.0) + tailwindcss: + specifier: ^3.4.0 + version: 3.4.0 + tailwindcss-themer: + specifier: ^4.0.0 + version: 4.0.0(tailwindcss@3.4.0) + type-fest: + specifier: ^4.8.3 + version: 4.8.3 + typescript: + specifier: ^5.3.3 + version: 5.3.3 + vite: + specifier: ^5.0.12 + version: 5.0.12(@types/node@20.10.5) + vite-plugin-checker: + specifier: ^0.6.2 + version: 0.6.2(eslint@8.56.0)(typescript@5.3.3)(vite@5.0.12) + vite-plugin-package-version: + specifier: ^1.1.0 + version: 1.1.0(vite@5.0.12) + vite-plugin-pwa: + specifier: ^0.17.4 + version: 0.17.4(vite@5.0.12)(workbox-build@7.0.0)(workbox-window@7.0.0) + vite-plugin-static-copy: + specifier: ^1.0.0 + version: 1.0.0(vite@5.0.12) + vitest: + specifier: ^1.1.0 + version: 1.1.0(@types/node@20.10.5)(jsdom@23.0.1) + +packages: + + /@aashutoshrathi/word-wrap@1.2.6: + resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} + engines: {node: '>=0.10.0'} + dev: true + + /@alloc/quick-lru@5.2.0: + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + dev: true + + /@ampproject/remapping@2.2.1: + resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.19 + + /@apideck/better-ajv-errors@0.3.6(ajv@8.12.0): + resolution: {integrity: sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==} + engines: {node: '>=10'} + peerDependencies: + ajv: '>=8' + dependencies: + ajv: 8.12.0 + json-schema: 0.4.0 + jsonpointer: 5.0.1 + leven: 3.1.0 + dev: true + + /@babel/code-frame@7.22.13: + resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.22.13 + chalk: 2.4.2 + dev: true + + /@babel/code-frame@7.23.5: + resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.23.4 + chalk: 2.4.2 + + /@babel/compat-data@7.23.5: + resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} + engines: {node: '>=6.9.0'} + + /@babel/core@7.23.6: + resolution: {integrity: sha512-FxpRyGjrMJXh7X3wGLGhNDCRiwpWEF74sKjTLDJSG5Kyvow3QZaG0Adbqzi9ZrVjTWpsX+2cxWXD71NMg93kdw==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.1 + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.6 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) + '@babel/helpers': 7.23.6 + '@babel/parser': 7.23.6 + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.6 + '@babel/types': 7.23.6 + convert-source-map: 2.0.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + /@babel/generator@7.23.6: + resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.6 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.19 + jsesc: 2.5.2 + + /@babel/helper-annotate-as-pure@7.22.5: + resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: + resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@babel/helper-compilation-targets@7.23.6: + resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/compat-data': 7.23.5 + '@babel/helper-validator-option': 7.23.5 + browserslist: 4.22.2 + lru-cache: 5.1.1 + semver: 6.3.1 + + /@babel/helper-create-class-features-plugin@7.23.6(@babel/core@7.23.6): + resolution: {integrity: sha512-cBXU1vZni/CpGF29iTu4YRbOZt3Wat6zCoMDxRF1MayiEc4URxOj31tT65HUM0CRpMowA3HCJaAOVOUnMf96cw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.6) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + semver: 6.3.1 + dev: true + + /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.6): + resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-annotate-as-pure': 7.22.5 + regexpu-core: 5.3.2 + semver: 6.3.1 + dev: true + + /@babel/helper-create-regexp-features-plugin@7.22.9(@babel/core@7.23.6): + resolution: {integrity: sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-annotate-as-pure': 7.22.5 + regexpu-core: 5.3.2 + semver: 6.3.1 + dev: true + + /@babel/helper-define-polyfill-provider@0.4.4(@babel/core@7.23.6): + resolution: {integrity: sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + debug: 4.3.4 + lodash.debounce: 4.0.8 + resolve: 1.22.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-environment-visitor@7.22.20: + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} + engines: {node: '>=6.9.0'} + + /@babel/helper-function-name@7.23.0: + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.15 + '@babel/types': 7.23.0 + + /@babel/helper-hoist-variables@7.22.5: + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + + /@babel/helper-member-expression-to-functions@7.23.0: + resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@babel/helper-module-imports@7.22.15: + resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + + /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.20 + + /@babel/helper-optimise-call-expression@7.22.5: + resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@babel/helper-plugin-utils@7.22.5: + resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} + engines: {node: '>=6.9.0'} + + /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.6): + resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-wrap-function': 7.22.20 + dev: true + + /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.6): + resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + dev: true + + /@babel/helper-simple-access@7.22.5: + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + + /@babel/helper-skip-transparent-expression-wrappers@7.22.5: + resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@babel/helper-split-export-declaration@7.22.6: + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + + /@babel/helper-string-parser@7.22.5: + resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} + engines: {node: '>=6.9.0'} + + /@babel/helper-string-parser@7.23.4: + resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-option@7.23.5: + resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} + engines: {node: '>=6.9.0'} + + /@babel/helper-wrap-function@7.22.20: + resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-function-name': 7.23.0 + '@babel/template': 7.22.15 + '@babel/types': 7.23.0 + dev: true + + /@babel/helpers@7.23.6: + resolution: {integrity: sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.6 + '@babel/types': 7.23.6 + transitivePeerDependencies: + - supports-color + + /@babel/highlight@7.22.13: + resolution: {integrity: sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + + /@babel/highlight@7.23.4: + resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + + /@babel/parser@7.23.0: + resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@babel/parser@7.23.6: + resolution: {integrity: sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.23.6 + + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.13.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.6) + dev: true + + /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.6): + resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + dev: true + + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.6): + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.6): + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.6): + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.6): + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.6): + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.6): + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.6): + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.6): + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.6): + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.6): + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.6): + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.6): + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.6): + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.6): + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.6): + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.6): + resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-async-generator-functions@7.23.4(@babel/core@7.23.6): + resolution: {integrity: sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.6) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.23.6): + resolution: {integrity: sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.23.6): + resolution: {integrity: sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-classes@7.23.5(@babel/core@7.23.6): + resolution: {integrity: sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.6) + '@babel/helper-split-export-declaration': 7.22.6 + globals: 11.12.0 + dev: true + + /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/template': 7.22.15 + dev: true + + /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.23.6): + resolution: {integrity: sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.23.6): + resolution: {integrity: sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-for-of@7.23.6(@babel/core@7.23.6): + resolution: {integrity: sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + dev: true + + /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.23.6): + resolution: {integrity: sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.23.6): + resolution: {integrity: sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-simple-access': 7.22.5 + dev: true + + /@babel/plugin-transform-modules-systemjs@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-identifier': 7.22.20 + dev: true + + /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.6): + resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.23.6): + resolution: {integrity: sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.23.6): + resolution: {integrity: sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.23.6): + resolution: {integrity: sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.23.5 + '@babel/core': 7.23.6 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.23.6): + resolution: {integrity: sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.23.6): + resolution: {integrity: sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.23.6): + resolution: {integrity: sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + regenerator-transform: 0.15.2 + dev: true + + /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + dev: true + + /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-typescript@7.23.6(@babel/core@7.23.6): + resolution: {integrity: sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/preset-env@7.23.6(@babel/core@7.23.6): + resolution: {integrity: sha512-2XPn/BqKkZCpzYhUUNZ1ssXw7DcXfKQEjv/uXZUXgaebCMYmkEsfZ2yY+vv+xtXv50WmL5SGhyB6/xsWxIvvOQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.23.5 + '@babel/core': 7.23.6 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.6) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.6) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.6) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.6) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.6) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.6) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.6) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.6) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.6) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.6) + '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-async-generator-functions': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-classes': 7.23.5(@babel/core@7.23.6) + '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.23.6) + '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-modules-systemjs': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.6) + '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.6) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.6) + babel-plugin-polyfill-corejs2: 0.4.7(@babel/core@7.23.6) + babel-plugin-polyfill-corejs3: 0.8.7(@babel/core@7.23.6) + babel-plugin-polyfill-regenerator: 0.5.4(@babel/core@7.23.6) + core-js-compat: 3.32.1 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.6): + resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} + peerDependencies: + '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/types': 7.23.0 + esutils: 2.0.3 + dev: true + + /@babel/preset-typescript@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.6) + dev: true + + /@babel/regjsgen@0.8.0: + resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} + dev: true + + /@babel/runtime@7.22.11: + resolution: {integrity: sha512-ee7jVNlWN09+KftVOu9n7S8gQzD/Z6hN/I8VBRXW4P1+Xe7kJGXMwu8vds4aGIMHZnNbdpSWCfZZtinytpcAvA==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.0 + + /@babel/runtime@7.23.6: + resolution: {integrity: sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.0 + + /@babel/template@7.22.15: + resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.23.5 + '@babel/parser': 7.23.6 + '@babel/types': 7.23.6 + + /@babel/traverse@7.23.6: + resolution: {integrity: sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.23.6 + '@babel/types': 7.23.6 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + /@babel/types@7.23.0: + resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.22.5 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + + /@babel/types@7.23.6: + resolution: {integrity: sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.23.4 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + + /@esbuild/aix-ppc64@0.19.10: + resolution: {integrity: sha512-Q+mk96KJ+FZ30h9fsJl+67IjNJm3x2eX+GBWGmocAKgzp27cowCOOqSdscX80s0SpdFXZnIv/+1xD1EctFx96Q==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64@0.19.10: + resolution: {integrity: sha512-1X4CClKhDgC3by7k8aOWZeBXQX8dHT5QAMCAQDArCLaYfkppoARvh0fit3X2Qs+MXDngKcHv6XXyQCpY0hkK1Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.19.10: + resolution: {integrity: sha512-7W0bK7qfkw1fc2viBfrtAEkDKHatYfHzr/jKAHNr9BvkYDXPcC6bodtm8AyLJNNuqClLNaeTLuwURt4PRT9d7w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.19.10: + resolution: {integrity: sha512-O/nO/g+/7NlitUxETkUv/IvADKuZXyH4BHf/g/7laqKC4i/7whLpB0gvpPc2zpF0q9Q6FXS3TS75QHac9MvVWw==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.19.10: + resolution: {integrity: sha512-YSRRs2zOpwypck+6GL3wGXx2gNP7DXzetmo5pHXLrY/VIMsS59yKfjPizQ4lLt5vEI80M41gjm2BxrGZ5U+VMA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.19.10: + resolution: {integrity: sha512-alfGtT+IEICKtNE54hbvPg13xGBe4GkVxyGWtzr+yHO7HIiRJppPDhOKq3zstTcVf8msXb/t4eavW3jCDpMSmA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.19.10: + resolution: {integrity: sha512-dMtk1wc7FSH8CCkE854GyGuNKCewlh+7heYP/sclpOG6Cectzk14qdUIY5CrKDbkA/OczXq9WesqnPl09mj5dg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.19.10: + resolution: {integrity: sha512-G5UPPspryHu1T3uX8WiOEUa6q6OlQh6gNl4CO4Iw5PS+Kg5bVggVFehzXBJY6X6RSOMS8iXDv2330VzaObm4Ag==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.19.10: + resolution: {integrity: sha512-QxaouHWZ+2KWEj7cGJmvTIHVALfhpGxo3WLmlYfJ+dA5fJB6lDEIg+oe/0//FuyVHuS3l79/wyBxbHr0NgtxJQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.19.10: + resolution: {integrity: sha512-j6gUW5aAaPgD416Hk9FHxn27On28H4eVI9rJ4az7oCGTFW48+LcgNDBN+9f8rKZz7EEowo889CPKyeaD0iw9Kg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.19.10: + resolution: {integrity: sha512-4ub1YwXxYjj9h1UIZs2hYbnTZBtenPw5NfXCRgEkGb0b6OJ2gpkMvDqRDYIDRjRdWSe/TBiZltm3Y3Q8SN1xNg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.19.10: + resolution: {integrity: sha512-lo3I9k+mbEKoxtoIbM0yC/MZ1i2wM0cIeOejlVdZ3D86LAcFXFRdeuZmh91QJvUTW51bOK5W2BznGNIl4+mDaA==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.19.10: + resolution: {integrity: sha512-J4gH3zhHNbdZN0Bcr1QUGVNkHTdpijgx5VMxeetSk6ntdt+vR1DqGmHxQYHRmNb77tP6GVvD+K0NyO4xjd7y4A==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.19.10: + resolution: {integrity: sha512-tgT/7u+QhV6ge8wFMzaklOY7KqiyitgT1AUHMApau32ZlvTB/+efeCtMk4eXS+uEymYK249JsoiklZN64xt6oQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.19.10: + resolution: {integrity: sha512-0f/spw0PfBMZBNqtKe5FLzBDGo0SKZKvMl5PHYQr3+eiSscfJ96XEknCe+JoOayybWUFQbcJTrk946i3j9uYZA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.19.10: + resolution: {integrity: sha512-pZFe0OeskMHzHa9U38g+z8Yx5FNCLFtUnJtQMpwhS+r4S566aK2ci3t4NCP4tjt6d5j5uo4h7tExZMjeKoehAA==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.19.10: + resolution: {integrity: sha512-SpYNEqg/6pZYoc+1zLCjVOYvxfZVZj6w0KROZ3Fje/QrM3nfvT2llI+wmKSrWuX6wmZeTapbarvuNNK/qepSgA==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.19.10: + resolution: {integrity: sha512-ACbZ0vXy9zksNArWlk2c38NdKg25+L9pr/mVaj9SUq6lHZu/35nx2xnQVRGLrC1KKQqJKRIB0q8GspiHI3J80Q==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.19.10: + resolution: {integrity: sha512-PxcgvjdSjtgPMiPQrM3pwSaG4kGphP+bLSb+cihuP0LYdZv1epbAIecHVl5sD3npkfYBZ0ZnOjR878I7MdJDFg==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.19.10: + resolution: {integrity: sha512-ZkIOtrRL8SEJjr+VHjmW0znkPs+oJXhlJbNwfI37rvgeMtk3sxOQevXPXjmAPZPigVTncvFqLMd+uV0IBSEzqA==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.19.10: + resolution: {integrity: sha512-+Sa4oTDbpBfGpl3Hn3XiUe4f8TU2JF7aX8cOfqFYMMjXp6ma6NJDztl5FDG8Ezx0OjwGikIHw+iA54YLDNNVfw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.19.10: + resolution: {integrity: sha512-EOGVLK1oWMBXgfttJdPHDTiivYSjX6jDNaATeNOaCOFEVcfMjtbx7WVQwPSE1eIfCp/CaSF2nSrDtzc4I9f8TQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.19.10: + resolution: {integrity: sha512-whqLG6Sc70AbU73fFYvuYzaE4MNMBIlR1Y/IrUeOXFrWHxBEjjbZaQ3IXIQS8wJdAzue2GwYZCjOrgrU1oUHoA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.56.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@eslint-community/regexpp@4.8.0: + resolution: {integrity: sha512-JylOEEzDiOryeUnFbQz+oViCXS0KsvR1mvHkoMiu5+UiBvy+RYX7tzlIIIEstF/gVa2tj9AQXk3dgnxv6KxhFg==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true + + /@eslint/eslintrc@2.1.4: + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.6.1 + globals: 13.21.0 + ignore: 5.2.4 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@eslint/js@8.56.0: + resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@formkit/auto-animate@0.8.1: + resolution: {integrity: sha512-0/Z2cuNXWVVIG/l0SpcHAWFhGdvLJ8DRvEfRWvmojtmRWfEy+LWNwgDazbZqY0qQYtkHcoEK3jBLkhiZaB/4Ig==} + dev: false + + /@headlessui/react@1.7.17(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-4am+tzvkqDSSgiwrsEpGWqgGo9dz8qU5M3znCkC4PgkpY4HcCZzEDEvozltGGGHIKl9jbXbZPSH5TWn4sWJdow==} + engines: {node: '>=10'} + peerDependencies: + react: ^16 || ^17 || ^18 + react-dom: ^16 || ^17 || ^18 + dependencies: + client-only: 0.0.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@humanwhocodes/config-array@0.11.13: + resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 2.0.1 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + dev: true + + /@humanwhocodes/object-schema@2.0.1: + resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} + dev: true + + /@isaacs/cliui@8.0.2: + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + dependencies: + string-width: 5.1.2 + string-width-cjs: /string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: /strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: /wrap-ansi@7.0.0 + dev: true + + /@jest/schemas@29.6.3: + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@sinclair/typebox': 0.27.8 + dev: true + + /@jridgewell/gen-mapping@0.3.3: + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.19 + + /@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + engines: {node: '>=6.0.0'} + + /@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + + /@jridgewell/source-map@0.3.5: + resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.19 + dev: true + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + + /@jridgewell/trace-mapping@0.3.19: + resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + + /@ladjs/country-language@1.0.3: + resolution: {integrity: sha512-FJROu9/hh4eqVAGDyfL8vpv6Vb0qKHX1ozYLRZ+beUzD5xFf+3r0J+SVIWKviEa7W524Qvqou+ta1WrsRgzxGw==} + engines: {node: '>= 14'} + dev: false + + /@movie-web/providers@2.2.0: + resolution: {integrity: sha512-7rKUpLPklwOtS5P2CAeh0P3sPIuYvtkKIgm0kVMp+OsSpKd9IcuYm79bbDrA0MDi3IMGik1W6la9Mzy91+8uYQ==} + dependencies: + cheerio: 1.0.0-rc.12 + cookie: 0.6.0 + crypto-js: 4.2.0 + form-data: 4.0.0 + iso-639-1: 3.1.0 + nanoid: 3.3.7 + node-fetch: 2.7.0 + set-cookie-parser: 2.6.0 + unpacker: 1.0.1 + transitivePeerDependencies: + - encoding + dev: false + + /@noble/hashes@1.3.3: + resolution: {integrity: sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==} + engines: {node: '>= 16'} + dev: false + + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.15.0 + dev: true + + /@pkgjs/parseargs@0.11.0: + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + requiresBuild: true + dev: true + optional: true + + /@pkgr/utils@2.4.2: + resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + dependencies: + cross-spawn: 7.0.3 + fast-glob: 3.3.1 + is-glob: 4.0.3 + open: 9.1.0 + picocolors: 1.0.0 + tslib: 2.6.2 + dev: true + + /@plasmohq/messaging@0.6.1(react@18.2.0): + resolution: {integrity: sha512-/nn1k8SG5z++o/NnZu+byHWcC9MhPLxfmvj+AP3buqMn7uwfYDcYWURLuMW2Knw08HBg+wku2v1Ltt4evN0nzA==} + peerDependencies: + react: ^16.8.6 || ^17 || ^18 + peerDependenciesMeta: + react: + optional: true + dependencies: + nanoid: 5.0.3 + react: 18.2.0 + dev: false + + /@react-spring/animated@9.7.3(react@18.2.0): + resolution: {integrity: sha512-5CWeNJt9pNgyvuSzQH+uy2pvTg8Y4/OisoscZIR8/ZNLIOI+CatFBhGZpDGTF/OzdNFsAoGk3wiUYTwoJ0YIvw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@react-spring/shared': 9.7.3(react@18.2.0) + '@react-spring/types': 9.7.3 + react: 18.2.0 + dev: false + + /@react-spring/core@9.7.3(react@18.2.0): + resolution: {integrity: sha512-IqFdPVf3ZOC1Cx7+M0cXf4odNLxDC+n7IN3MDcVCTIOSBfqEcBebSv+vlY5AhM0zw05PDbjKrNmBpzv/AqpjnQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@react-spring/animated': 9.7.3(react@18.2.0) + '@react-spring/shared': 9.7.3(react@18.2.0) + '@react-spring/types': 9.7.3 + react: 18.2.0 + dev: false + + /@react-spring/shared@9.7.3(react@18.2.0): + resolution: {integrity: sha512-NEopD+9S5xYyQ0pGtioacLhL2luflh6HACSSDUZOwLHoxA5eku1UPuqcJqjwSD6luKjjLfiLOspxo43FUHKKSA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@react-spring/types': 9.7.3 + react: 18.2.0 + dev: false + + /@react-spring/types@9.7.3: + resolution: {integrity: sha512-Kpx/fQ/ZFX31OtlqVEFfgaD1ACzul4NksrvIgYfIFq9JpDHFwQkMVZ10tbo0FU/grje4rcL4EIrjekl3kYwgWw==} + dev: false + + /@react-spring/web@9.7.3(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-BXt6BpS9aJL/QdVqEIX9YoUy8CE6TJrU0mNCqSoxdXlIeNcEBWOfIyE6B14ENNsyQKS3wOWkiJfco0tCr/9tUg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@react-spring/animated': 9.7.3(react@18.2.0) + '@react-spring/core': 9.7.3(react@18.2.0) + '@react-spring/shared': 9.7.3(react@18.2.0) + '@react-spring/types': 9.7.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@remix-run/router@1.14.1: + resolution: {integrity: sha512-Qg4DMQsfPNAs88rb2xkdk03N3bjK4jgX5fR24eHCTR9q6PrhZQZ4UJBPzCHJkIpTRN1UKxx2DzjZmnC+7Lj0Ow==} + engines: {node: '>=14.0.0'} + dev: false + + /@rollup/plugin-babel@5.3.1(@babel/core@7.23.6)(@rollup/wasm-node@4.12.0): + resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} + engines: {node: '>= 10.0.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@types/babel__core': ^7.1.9 + rollup: npm:@rollup/wasm-node + peerDependenciesMeta: + '@types/babel__core': + optional: true + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-module-imports': 7.22.15 + '@rollup/pluginutils': 3.1.0(@rollup/wasm-node@4.12.0) + rollup: /@rollup/wasm-node@4.12.0 + dev: true + + /@rollup/plugin-node-resolve@11.2.1(@rollup/wasm-node@4.12.0): + resolution: {integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==} + engines: {node: '>= 10.0.0'} + peerDependencies: + rollup: npm:@rollup/wasm-node + dependencies: + '@rollup/pluginutils': 3.1.0(@rollup/wasm-node@4.12.0) + '@types/resolve': 1.17.1 + builtin-modules: 3.3.0 + deepmerge: 4.3.1 + is-module: 1.0.0 + resolve: 1.22.4 + rollup: /@rollup/wasm-node@4.12.0 + dev: true + + /@rollup/plugin-replace@2.4.2(@rollup/wasm-node@4.12.0): + resolution: {integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==} + peerDependencies: + rollup: npm:@rollup/wasm-node + dependencies: + '@rollup/pluginutils': 3.1.0(@rollup/wasm-node@4.12.0) + magic-string: 0.25.9 + rollup: /@rollup/wasm-node@4.12.0 + dev: true + + /@rollup/pluginutils@3.1.0(@rollup/wasm-node@4.12.0): + resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} + engines: {node: '>= 8.0.0'} + peerDependencies: + rollup: npm:@rollup/wasm-node + dependencies: + '@types/estree': 0.0.39 + estree-walker: 1.0.1 + picomatch: 2.3.1 + rollup: /@rollup/wasm-node@4.12.0 + dev: true + + /@rollup/wasm-node@4.12.0: + resolution: {integrity: sha512-sqy3+YvV/uWX6bPZOR5PlEdH6xyMPXoelllRQ/uZ13tzy9f4pXZTbajnoWN8IHHXwTNKPiLzsePLiDEVmkxMNw==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + dependencies: + '@types/estree': 1.0.5 + optionalDependencies: + fsevents: 2.3.3 + + /@rollup/wasm-node@4.9.4: + resolution: {integrity: sha512-K9ZPYMCxP7sBElj5du0En/zpbhXTQxpWI7RlF+8bNpLUozhzg2Pcx2h3cBCzV7xtiUt0dc+pF2Ib3/Sg8R0JMA==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + dependencies: + '@types/estree': 1.0.5 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /@scure/base@1.1.5: + resolution: {integrity: sha512-Brj9FiG2W1MRQSTB212YVPRrcbjkv48FoZi/u4l/zds/ieRrqsh7aUf6CLwkAq61oKXr/ZlTzlY66gLIj3TFTQ==} + dev: false + + /@scure/bip39@1.2.2: + resolution: {integrity: sha512-HYf9TUXG80beW+hGAt3TRM8wU6pQoYur9iNypTROm42dorCGmLnFe3eWjz3gOq6G62H2WRh0FCzAR1PI+29zIA==} + dependencies: + '@noble/hashes': 1.3.3 + '@scure/base': 1.1.5 + dev: false + + /@sinclair/typebox@0.27.8: + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + dev: true + + /@sozialhelden/ietf-language-tags@5.4.2: + resolution: {integrity: sha512-aCN7bVOfX9sBN0EHyWJT14H8bx+VYBo8tdcynai35wgoxKMfVtgEECkQ1gs8nEL6GHGes8lPIfo6AjIch44N3w==} + dependencies: + lodash.compact: 3.0.1 + typescript: 4.9.5 + dev: false + + /@surma/rollup-plugin-off-main-thread@2.2.3: + resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==} + dependencies: + ejs: 3.1.9 + json5: 2.2.3 + magic-string: 0.25.9 + string.prototype.matchall: 4.0.9 + dev: true + + /@types/babel__core@7.20.5: + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + dependencies: + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 + '@types/babel__generator': 7.6.8 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.20.4 + dev: true + + /@types/babel__generator@7.6.8: + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@types/babel__template@7.4.4: + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + dependencies: + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 + dev: true + + /@types/babel__traverse@7.20.4: + resolution: {integrity: sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==} + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@types/chrome@0.0.244: + resolution: {integrity: sha512-pC8kBWuUqGhG6S5d3E44a2f1TA2XHX/sXfCIrrDpA4K65Ozzw3mYQjuvMOTdSUCx4HjJhp4zuZh6fKOH3UdA1g==} + dependencies: + '@types/filesystem': 0.0.32 + '@types/har-format': 1.2.12 + dev: true + + /@types/chromecast-caf-sender@1.0.8: + resolution: {integrity: sha512-3vByTZptIkYpNz/wErOnpFQ4hWGU1ghO5bcivNButxARbXXKfClLJv6r5Pd622nD/UecjSwrAeIposAIzd4HvA==} + dependencies: + '@types/chrome': 0.0.244 + dev: true + + /@types/crypto-js@4.2.1: + resolution: {integrity: sha512-FSPGd9+OcSok3RsM0UZ/9fcvMOXJ1ENE/ZbLfOPlBWj7BgXtEAM8VYfTtT760GiLbQIMoVozwVuisjvsVwqYWw==} + dev: true + + /@types/dompurify@3.0.5: + resolution: {integrity: sha512-1Wg0g3BtQF7sSb27fJQAKck1HECM6zV1EB66j8JH9i3LCjYabJa0FSdiSgsD5K/RbrsR0SiraKacLB+T8ZVYAg==} + dependencies: + '@types/trusted-types': 2.0.3 + dev: true + + /@types/estree@0.0.39: + resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} + dev: true + + /@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + + /@types/filesystem@0.0.32: + resolution: {integrity: sha512-Yuf4jR5YYMR2DVgwuCiP11s0xuVRyPKmz8vo6HBY3CGdeMj8af93CFZX+T82+VD1+UqHOxTq31lO7MI7lepBtQ==} + dependencies: + '@types/filewriter': 0.0.29 + dev: true + + /@types/filewriter@0.0.29: + resolution: {integrity: sha512-BsPXH/irW0ht0Ji6iw/jJaK8Lj3FJemon2gvEqHKpCdDCeemHa+rI3WBGq5z7cDMZgoLjY40oninGxqk+8NzNQ==} + dev: true + + /@types/fscreen@1.0.4: + resolution: {integrity: sha512-TsjxyAUvlvuQyao9vNk0yES4nY07K9xoAbkhgXU948JG39EqlLxniWuW9OiZde9Q8ACSpu3fmbXXRAfb/l/HqQ==} + dev: true + + /@types/har-format@1.2.12: + resolution: {integrity: sha512-P20p/YBrqUBmzD6KhIQ8EiY4/RRzlekL4eCvfQnulFPfjmiGxKIoyCeI7qam5I7oKH3P8EU4ptEi0EfyGoLysw==} + dev: true + + /@types/history@4.7.11: + resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==} + dev: true + + /@types/js-cookie@2.2.7: + resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==} + dev: false + + /@types/json-schema@7.0.12: + resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} + dev: true + + /@types/json5@0.0.29: + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + dev: true + + /@types/lodash.isequal@4.5.8: + resolution: {integrity: sha512-uput6pg4E/tj2LGxCZo9+y27JNyB2OZuuI/T5F+ylVDYuqICLG2/ktjxx0v6GvVntAf8TvEzeQLcV0ffRirXuA==} + dependencies: + '@types/lodash': 4.14.197 + dev: true + + /@types/lodash.throttle@4.1.9: + resolution: {integrity: sha512-PCPVfpfueguWZQB7pJQK890F2scYKoDUL3iM522AptHWn7d5NQmeS/LTEHIcLr5PaTzl3dK2Z0xSUHHTHwaL5g==} + dependencies: + '@types/lodash': 4.14.197 + dev: true + + /@types/lodash@4.14.197: + resolution: {integrity: sha512-BMVOiWs0uNxHVlHBgzTIqJYmj+PgCo4euloGF+5m4okL3rEYzM2EEv78mw8zWSMM57dM7kVIgJ2QDvwHSoCI5g==} + dev: true + + /@types/node-forge@1.3.10: + resolution: {integrity: sha512-y6PJDYN4xYBxwd22l+OVH35N+1fCYWiuC3aiP2SlXVE6Lo7SS+rSx9r89hLxrP4pn6n1lBGhHJ12pj3F3Mpttw==} + dependencies: + '@types/node': 20.10.5 + dev: false + + /@types/node@20.10.5: + resolution: {integrity: sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw==} + dependencies: + undici-types: 5.26.5 + + /@types/pako@2.0.3: + resolution: {integrity: sha512-bq0hMV9opAcrmE0Byyo0fY3Ew4tgOevJmQ9grUhpXQhYfyLJ1Kqg3P33JT5fdbT2AjeAjR51zqqVjAL/HMkx7Q==} + dev: true + + /@types/prop-types@15.7.5: + resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} + + /@types/react-dom@18.2.18: + resolution: {integrity: sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw==} + dependencies: + '@types/react': 18.2.45 + dev: true + + /@types/react-helmet@6.1.11: + resolution: {integrity: sha512-0QcdGLddTERotCXo3VFlUSWO3ztraw8nZ6e3zJSgG7apwV5xt+pJUS8ewPBqT4NYB1optGLprNQzFleIY84u/g==} + dependencies: + '@types/react': 18.2.45 + dev: true + + /@types/react-router-dom@5.3.3: + resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==} + dependencies: + '@types/history': 4.7.11 + '@types/react': 18.2.45 + '@types/react-router': 5.1.20 + dev: true + + /@types/react-router@5.1.20: + resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==} + dependencies: + '@types/history': 4.7.11 + '@types/react': 18.2.45 + dev: true + + /@types/react-stickynode@4.0.3: + resolution: {integrity: sha512-K7YkwdhXQE4YVxIVweix4nkpdG4onm/dcnKK+qCj0vgUrNiKng+09zOfjF5AlOcC1HQkg5yxVLwp/0AzT84R0w==} + dependencies: + '@types/react': 18.2.45 + dev: true + + /@types/react-transition-group@4.4.10: + resolution: {integrity: sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==} + dependencies: + '@types/react': 18.2.45 + dev: true + + /@types/react@18.2.45: + resolution: {integrity: sha512-TtAxCNrlrBp8GoeEp1npd5g+d/OejJHFxS3OWmrPBMFaVQMSN0OFySozJio5BHxTuTeug00AVXVAjfDSfk+lUg==} + dependencies: + '@types/prop-types': 15.7.5 + '@types/scheduler': 0.16.3 + csstype: 3.1.2 + + /@types/resolve@1.17.1: + resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} + dependencies: + '@types/node': 20.10.5 + dev: true + + /@types/scheduler@0.16.3: + resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==} + + /@types/semver@7.5.6: + resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} + dev: true + + /@types/trusted-types@2.0.3: + resolution: {integrity: sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==} + dev: true + + /@typescript-eslint/eslint-plugin@6.15.0(@typescript-eslint/parser@6.15.0)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-j5qoikQqPccq9QoBAupOP+CBu8BaJ8BLjaXSioDISeTZkVO3ig7oSIKh3H+rEpee7xCXtWwSB4KIL5l6hWZzpg==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.8.0 + '@typescript-eslint/parser': 6.15.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.15.0 + '@typescript-eslint/type-utils': 6.15.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.15.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.15.0 + debug: 4.3.4 + eslint: 8.56.0 + graphemer: 1.4.0 + ignore: 5.2.4 + natural-compare: 1.4.0 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/parser@6.15.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-MkgKNnsjC6QwcMdlNAel24jjkEO/0hQaMDLqP4S9zq5HBAUJNQB6y+3DwLjX7b3l2b37eNAxMPLwb3/kh8VKdA==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 6.15.0 + '@typescript-eslint/types': 6.15.0 + '@typescript-eslint/typescript-estree': 6.15.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.15.0 + debug: 4.3.4 + eslint: 8.56.0 + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/scope-manager@6.15.0: + resolution: {integrity: sha512-+BdvxYBltqrmgCNu4Li+fGDIkW9n//NrruzG9X1vBzaNK+ExVXPoGB71kneaVw/Jp+4rH/vaMAGC6JfMbHstVg==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.15.0 + '@typescript-eslint/visitor-keys': 6.15.0 + dev: true + + /@typescript-eslint/type-utils@6.15.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-CnmHKTfX6450Bo49hPg2OkIm/D/TVYV7jO1MCfPYGwf6x3GO0VU8YMO5AYMn+u3X05lRRxA4fWCz87GFQV6yVQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 6.15.0(typescript@5.3.3) + '@typescript-eslint/utils': 6.15.0(eslint@8.56.0)(typescript@5.3.3) + debug: 4.3.4 + eslint: 8.56.0 + ts-api-utils: 1.0.3(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/types@6.15.0: + resolution: {integrity: sha512-yXjbt//E4T/ee8Ia1b5mGlbNj9fB9lJP4jqLbZualwpP2BCQ5is6BcWwxpIsY4XKAhmdv3hrW92GdtJbatC6dQ==} + engines: {node: ^16.0.0 || >=18.0.0} + dev: true + + /@typescript-eslint/typescript-estree@6.15.0(typescript@5.3.3): + resolution: {integrity: sha512-7mVZJN7Hd15OmGuWrp2T9UvqR2Ecg+1j/Bp1jXUEY2GZKV6FXlOIoqVDmLpBiEiq3katvj/2n2mR0SDwtloCew==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 6.15.0 + '@typescript-eslint/visitor-keys': 6.15.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils@6.15.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-eF82p0Wrrlt8fQSRL0bGXzK5nWPRV2dYQZdajcfzOD9+cQz9O7ugifrJxclB+xVOvWvagXfqS4Es7vpLP4augw==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@types/json-schema': 7.0.12 + '@types/semver': 7.5.6 + '@typescript-eslint/scope-manager': 6.15.0 + '@typescript-eslint/types': 6.15.0 + '@typescript-eslint/typescript-estree': 6.15.0(typescript@5.3.3) + eslint: 8.56.0 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/visitor-keys@6.15.0: + resolution: {integrity: sha512-1zvtdC1a9h5Tb5jU9x3ADNXO9yjP8rXlaoChu0DQX40vf5ACVpYIVIZhIMZ6d5sDXH7vq4dsZBT1fEGj8D2n2w==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.15.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + dev: true + + /@vitejs/plugin-react@4.2.1(vite@5.0.12): + resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.2.0 || ^5.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.6) + '@types/babel__core': 7.20.5 + react-refresh: 0.14.0 + vite: 5.0.12(@types/node@20.10.5) + transitivePeerDependencies: + - supports-color + dev: true + + /@vitest/expect@1.1.0: + resolution: {integrity: sha512-9IE2WWkcJo2BR9eqtY5MIo3TPmS50Pnwpm66A6neb2hvk/QSLfPXBz2qdiwUOQkwyFuuXEUj5380CbwfzW4+/w==} + dependencies: + '@vitest/spy': 1.1.0 + '@vitest/utils': 1.1.0 + chai: 4.3.10 + dev: true + + /@vitest/runner@1.1.0: + resolution: {integrity: sha512-zdNLJ00pm5z/uhbWF6aeIJCGMSyTyWImy3Fcp9piRGvueERFlQFbUwCpzVce79OLm2UHk9iwaMSOaU9jVHgNVw==} + dependencies: + '@vitest/utils': 1.1.0 + p-limit: 5.0.0 + pathe: 1.1.1 + dev: true + + /@vitest/snapshot@1.1.0: + resolution: {integrity: sha512-5O/wyZg09V5qmNmAlUgCBqflvn2ylgsWJRRuPrnHEfDNT6tQpQ8O1isNGgo+VxofISHqz961SG3iVvt3SPK/QQ==} + dependencies: + magic-string: 0.30.5 + pathe: 1.1.1 + pretty-format: 29.7.0 + dev: true + + /@vitest/spy@1.1.0: + resolution: {integrity: sha512-sNOVSU/GE+7+P76qYo+VXdXhXffzWZcYIPQfmkiRxaNCSPiLANvQx5Mx6ZURJ/ndtEkUJEpvKLXqAYTKEY+lTg==} + dependencies: + tinyspy: 2.2.0 + dev: true + + /@vitest/utils@1.1.0: + resolution: {integrity: sha512-z+s510fKmYz4Y41XhNs3vcuFTFhcij2YF7F8VQfMEYAAUfqQh0Zfg7+w9xdgFGhPf3tX3TicAe+8BDITk6ampQ==} + dependencies: + diff-sequences: 29.6.3 + loupe: 2.3.7 + pretty-format: 29.7.0 + dev: true + + /@xobotyi/scrollbar-width@1.9.5: + resolution: {integrity: sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==} + dev: false + + /acorn-jsx@5.3.2(acorn@8.10.0): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.10.0 + dev: true + + /acorn-walk@8.3.1: + resolution: {integrity: sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==} + engines: {node: '>=0.4.0'} + dev: true + + /acorn@8.10.0: + resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /acorn@8.11.2: + resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} + engines: {node: '>=0.4.0'} + hasBin: true + + /agent-base@7.1.0: + resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} + engines: {node: '>= 14'} + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: true + + /ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + dev: true + + /ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.21.3 + dev: true + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: true + + /ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + dev: true + + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: true + + /ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + dev: true + + /ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + dev: true + + /any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + dev: true + + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + /arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + dev: true + + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: true + + /aria-query@5.3.0: + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + dependencies: + dequal: 2.0.3 + dev: true + + /array-buffer-byte-length@1.0.0: + resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + dependencies: + call-bind: 1.0.2 + is-array-buffer: 3.0.2 + dev: true + + /array-includes@3.1.6: + resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + get-intrinsic: 1.2.1 + is-string: 1.0.7 + dev: true + + /array-includes@3.1.7: + resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + get-intrinsic: 1.2.1 + is-string: 1.0.7 + dev: true + + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true + + /array.prototype.findlastindex@1.2.3: + resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + es-shim-unscopables: 1.0.0 + get-intrinsic: 1.2.1 + dev: true + + /array.prototype.flat@1.3.1: + resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + es-shim-unscopables: 1.0.0 + dev: true + + /array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + es-shim-unscopables: 1.0.0 + dev: true + + /array.prototype.flatmap@1.3.1: + resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + es-shim-unscopables: 1.0.0 + dev: true + + /array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + es-shim-unscopables: 1.0.0 + dev: true + + /array.prototype.tosorted@1.1.2: + resolution: {integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + es-shim-unscopables: 1.0.0 + get-intrinsic: 1.2.1 + dev: true + + /arraybuffer.prototype.slice@1.0.1: + resolution: {integrity: sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.2 + define-properties: 1.2.0 + get-intrinsic: 1.2.1 + is-array-buffer: 3.0.2 + is-shared-array-buffer: 1.0.2 + dev: true + + /assertion-error@1.1.0: + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + dev: true + + /ast-types-flow@0.0.8: + resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} + dev: true + + /async@3.2.4: + resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} + dev: true + + /asynciterator.prototype@1.0.0: + resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==} + dependencies: + has-symbols: 1.0.3 + dev: true + + /asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + /at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + dev: true + + /autoprefixer@10.4.16(postcss@8.4.32): + resolution: {integrity: sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: '>=8.4.31' + dependencies: + browserslist: 4.21.10 + caniuse-lite: 1.0.30001571 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.0.0 + postcss: 8.4.32 + postcss-value-parser: 4.2.0 + dev: true + + /available-typed-arrays@1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + engines: {node: '>= 0.4'} + dev: true + + /axe-core@4.7.0: + resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} + engines: {node: '>=4'} + dev: true + + /axobject-query@3.2.1: + resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} + dependencies: + dequal: 2.0.3 + dev: true + + /babel-plugin-polyfill-corejs2@0.4.7(@babel/core@7.23.6): + resolution: {integrity: sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/compat-data': 7.23.5 + '@babel/core': 7.23.6 + '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.6) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-polyfill-corejs3@0.8.7(@babel/core@7.23.6): + resolution: {integrity: sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.6) + core-js-compat: 3.34.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-polyfill-regenerator@0.5.4(@babel/core@7.23.6): + resolution: {integrity: sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.6) + transitivePeerDependencies: + - supports-color + dev: true + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: true + + /big-integer@1.6.52: + resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} + engines: {node: '>=0.6'} + dev: true + + /binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + + /boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + dev: false + + /bplist-parser@0.2.0: + resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} + engines: {node: '>= 5.10.0'} + dependencies: + big-integer: 1.6.52 + dev: true + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: true + + /brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 + dev: true + + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + + /browserslist@4.21.10: + resolution: {integrity: sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001571 + electron-to-chromium: 1.4.508 + node-releases: 2.0.13 + update-browserslist-db: 1.0.11(browserslist@4.21.10) + dev: true + + /browserslist@4.22.2: + resolution: {integrity: sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001571 + electron-to-chromium: 1.4.616 + node-releases: 2.0.14 + update-browserslist-db: 1.0.13(browserslist@4.22.2) + + /buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + dev: true + + /builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + dev: true + + /bundle-name@3.0.0: + resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} + engines: {node: '>=12'} + dependencies: + run-applescript: 5.0.0 + dev: true + + /cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + dev: true + + /call-bind@1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + dependencies: + function-bind: 1.1.1 + get-intrinsic: 1.2.1 + dev: true + + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: true + + /camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + dev: true + + /caniuse-lite@1.0.30001571: + resolution: {integrity: sha512-tYq/6MoXhdezDLFZuCO/TKboTzuQ/xR5cFdgXPfDtM7/kchBO3b4VWghE/OAi/DV7tTdhmLjZiZBZi1fA/GheQ==} + + /chai@4.3.10: + resolution: {integrity: sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==} + engines: {node: '>=4'} + dependencies: + assertion-error: 1.1.0 + check-error: 1.0.3 + deep-eql: 4.1.3 + get-func-name: 2.0.2 + loupe: 2.3.6 + pathval: 1.1.1 + type-detect: 4.0.8 + dev: true + + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /check-error@1.0.3: + resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + dependencies: + get-func-name: 2.0.2 + dev: true + + /cheerio-select@2.1.0: + resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} + dependencies: + boolbase: 1.0.0 + css-select: 5.1.0 + css-what: 6.1.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.1.0 + dev: false + + /cheerio@1.0.0-rc.12: + resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==} + engines: {node: '>= 6'} + dependencies: + cheerio-select: 2.1.0 + dom-serializer: 2.0.0 + domhandler: 5.0.3 + domutils: 3.1.0 + htmlparser2: 8.0.2 + parse5: 7.1.2 + parse5-htmlparser2-tree-adapter: 7.0.0 + dev: false + + /chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + /classnames@2.3.2: + resolution: {integrity: sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==} + dev: false + + /client-only@0.0.1: + resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + dev: false + + /cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: true + + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: true + + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true + + /color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.2 + dev: true + + /color@4.2.3: + resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} + engines: {node: '>=12.5.0'} + dependencies: + color-convert: 2.0.1 + color-string: 1.9.1 + dev: true + + /combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: 1.0.0 + + /commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + dev: true + + /commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + dev: true + + /commander@8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + engines: {node: '>= 12'} + dev: true + + /common-tags@1.8.2: + resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} + engines: {node: '>=4.0.0'} + dev: true + + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: true + + /confusing-browser-globals@1.0.11: + resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==} + dev: true + + /convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + /cookie@0.6.0: + resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} + engines: {node: '>= 0.6'} + dev: false + + /copy-to-clipboard@3.3.3: + resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} + dependencies: + toggle-selection: 1.0.6 + dev: false + + /core-js-compat@3.32.1: + resolution: {integrity: sha512-GSvKDv4wE0bPnQtjklV101juQ85g6H3rm5PDP20mqlS5j0kXF3pP97YvAu5hl+uFHqMictp3b2VxOHljWMAtuA==} + dependencies: + browserslist: 4.21.10 + dev: true + + /core-js-compat@3.34.0: + resolution: {integrity: sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA==} + dependencies: + browserslist: 4.22.2 + dev: true + + /core-js@3.34.0: + resolution: {integrity: sha512-aDdvlDder8QmY91H88GzNi9EtQi2TjvQhpCX6B1v/dAZHU1AuLgHvRh54RiOerpEhEW46Tkf+vgAViB/CWC0ag==} + requiresBuild: true + dev: false + + /cross-env@7.0.3: + resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} + engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} + hasBin: true + dependencies: + cross-spawn: 7.0.3 + dev: true + + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + + /crypto-js@4.2.0: + resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} + dev: false + + /crypto-random-string@2.0.0: + resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} + engines: {node: '>=8'} + dev: true + + /css-in-js-utils@3.1.0: + resolution: {integrity: sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==} + dependencies: + hyphenate-style-name: 1.0.4 + dev: false + + /css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 5.0.3 + domutils: 3.1.0 + nth-check: 2.1.1 + dev: false + + /css-tree@1.1.3: + resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} + engines: {node: '>=8.0.0'} + dependencies: + mdn-data: 2.0.14 + source-map: 0.6.1 + dev: false + + /css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + dev: false + + /cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /cssstyle@3.0.0: + resolution: {integrity: sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==} + engines: {node: '>=14'} + dependencies: + rrweb-cssom: 0.6.0 + dev: true + + /csstype@3.1.2: + resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} + + /damerau-levenshtein@1.0.8: + resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + dev: true + + /data-urls@5.0.0: + resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} + engines: {node: '>=18'} + dependencies: + whatwg-mimetype: 4.0.0 + whatwg-url: 14.0.0 + dev: true + + /debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + dev: true + + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + + /decimal.js@10.4.3: + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + dev: true + + /deep-eql@4.1.3: + resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + engines: {node: '>=6'} + dependencies: + type-detect: 4.0.8 + dev: true + + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: true + + /deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + dev: true + + /default-browser-id@3.0.0: + resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} + engines: {node: '>=12'} + dependencies: + bplist-parser: 0.2.0 + untildify: 4.0.0 + dev: true + + /default-browser@4.0.0: + resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} + engines: {node: '>=14.16'} + dependencies: + bundle-name: 3.0.0 + default-browser-id: 3.0.0 + execa: 7.2.0 + titleize: 3.0.0 + dev: true + + /define-data-property@1.1.1: + resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.1 + gopd: 1.0.1 + has-property-descriptors: 1.0.0 + dev: true + + /define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + dev: true + + /define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + dev: true + + /define-properties@1.2.0: + resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} + engines: {node: '>= 0.4'} + dependencies: + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + dev: true + + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.1 + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + dev: true + + /delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + /dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + dev: true + + /destr@2.0.1: + resolution: {integrity: sha512-M1Ob1zPSIvlARiJUkKqvAZ3VAqQY6Jcuth/pBKQ2b1dX/Qx0OnJ8Vux6J2H5PTMQeRzWrrbTu70VxBfv/OPDJA==} + dev: false + + /detect-browser@5.3.0: + resolution: {integrity: sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==} + dev: false + + /didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + dev: true + + /diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: true + + /dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + dev: true + + /doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + dev: false + + /domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + dev: false + + /domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.3.0 + dev: false + + /dompurify@3.0.6: + resolution: {integrity: sha512-ilkD8YEnnGh1zJ240uJsW7AzE+2qpbOUYjacomn3AvJ6J4JhKGSZ2nh4wUIXPZrEPppaCLx5jFe8T89Rk8tQ7w==} + dev: false + + /domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + dev: false + + /eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + dev: true + + /ejs@3.1.9: + resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + jake: 10.8.7 + dev: true + + /electron-to-chromium@1.4.508: + resolution: {integrity: sha512-FFa8QKjQK/A5QuFr2167myhMesGrhlOBD+3cYNxO9/S4XzHEXesyTD/1/xF644gC8buFPz3ca6G1LOQD0tZrrg==} + dev: true + + /electron-to-chromium@1.4.616: + resolution: {integrity: sha512-1n7zWYh8eS0L9Uy+GskE0lkBUNK83cXTVJI0pU3mGprFsbfSdAc15VTFbo+A+Bq4pwstmL30AVcEU3Fo463lNg==} + + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: true + + /emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + dev: true + + /enhanced-resolve@5.15.0: + resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + dev: true + + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + /error-stack-parser@2.1.4: + resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} + dependencies: + stackframe: 1.3.4 + dev: false + + /es-abstract@1.22.1: + resolution: {integrity: sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + arraybuffer.prototype.slice: 1.0.1 + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + es-set-tostringtag: 2.0.1 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.1 + get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 + has: 1.0.3 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + is-array-buffer: 3.0.2 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-typed-array: 1.1.12 + is-weakref: 1.0.2 + object-inspect: 1.12.3 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.5.0 + safe-array-concat: 1.0.0 + safe-regex-test: 1.0.0 + string.prototype.trim: 1.2.7 + string.prototype.trimend: 1.0.6 + string.prototype.trimstart: 1.0.6 + typed-array-buffer: 1.0.0 + typed-array-byte-length: 1.0.0 + typed-array-byte-offset: 1.0.0 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.11 + dev: true + + /es-iterator-helpers@1.0.15: + resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==} + dependencies: + asynciterator.prototype: 1.0.0 + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.1 + es-set-tostringtag: 2.0.1 + function-bind: 1.1.1 + get-intrinsic: 1.2.1 + globalthis: 1.0.3 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + iterator.prototype: 1.1.2 + safe-array-concat: 1.0.1 + dev: true + + /es-set-tostringtag@2.0.1: + resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.1 + has: 1.0.3 + has-tostringtag: 1.0.0 + dev: true + + /es-shim-unscopables@1.0.0: + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + dependencies: + has: 1.0.3 + dev: true + + /es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + dev: true + + /esbuild@0.19.10: + resolution: {integrity: sha512-S1Y27QGt/snkNYrRcswgRFqZjaTG5a5xM3EQo97uNBnH505pdzSNe/HLBq1v0RO7iK/ngdbhJB6mDAp0OK+iUA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/aix-ppc64': 0.19.10 + '@esbuild/android-arm': 0.19.10 + '@esbuild/android-arm64': 0.19.10 + '@esbuild/android-x64': 0.19.10 + '@esbuild/darwin-arm64': 0.19.10 + '@esbuild/darwin-x64': 0.19.10 + '@esbuild/freebsd-arm64': 0.19.10 + '@esbuild/freebsd-x64': 0.19.10 + '@esbuild/linux-arm': 0.19.10 + '@esbuild/linux-arm64': 0.19.10 + '@esbuild/linux-ia32': 0.19.10 + '@esbuild/linux-loong64': 0.19.10 + '@esbuild/linux-mips64el': 0.19.10 + '@esbuild/linux-ppc64': 0.19.10 + '@esbuild/linux-riscv64': 0.19.10 + '@esbuild/linux-s390x': 0.19.10 + '@esbuild/linux-x64': 0.19.10 + '@esbuild/netbsd-x64': 0.19.10 + '@esbuild/openbsd-x64': 0.19.10 + '@esbuild/sunos-x64': 0.19.10 + '@esbuild/win32-arm64': 0.19.10 + '@esbuild/win32-ia32': 0.19.10 + '@esbuild/win32-x64': 0.19.10 + dev: true + + /escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + dev: true + + /eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.29.1)(eslint@8.56.0): + resolution: {integrity: sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==} + engines: {node: ^10.12.0 || >=12.0.0} + peerDependencies: + eslint: ^7.32.0 || ^8.2.0 + eslint-plugin-import: ^2.25.2 + dependencies: + confusing-browser-globals: 1.0.11 + eslint: 8.56.0 + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.15.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) + object.assign: 4.1.4 + object.entries: 1.1.7 + semver: 6.3.1 + dev: true + + /eslint-config-airbnb@19.0.4(eslint-plugin-import@2.29.1)(eslint-plugin-jsx-a11y@6.8.0)(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.33.2)(eslint@8.56.0): + resolution: {integrity: sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew==} + engines: {node: ^10.12.0 || ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^7.32.0 || ^8.2.0 + eslint-plugin-import: ^2.25.3 + eslint-plugin-jsx-a11y: ^6.5.1 + eslint-plugin-react: ^7.28.0 + eslint-plugin-react-hooks: ^4.3.0 + dependencies: + eslint: 8.56.0 + eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.29.1)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.15.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) + eslint-plugin-jsx-a11y: 6.8.0(eslint@8.56.0) + eslint-plugin-react: 7.33.2(eslint@8.56.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.56.0) + object.assign: 4.1.4 + object.entries: 1.1.7 + dev: true + + /eslint-config-prettier@9.1.0(eslint@8.56.0): + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + dependencies: + eslint: 8.56.0 + dev: true + + /eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + dependencies: + debug: 3.2.7 + is-core-module: 2.13.1 + resolve: 1.22.4 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.15.0)(eslint-plugin-import@2.29.1)(eslint@8.56.0): + resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + dependencies: + debug: 4.3.4 + enhanced-resolve: 5.15.0 + eslint: 8.56.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.15.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.15.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) + fast-glob: 3.3.1 + get-tsconfig: 4.7.2 + is-core-module: 2.13.0 + is-glob: 4.0.3 + transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-node + - eslint-import-resolver-webpack + - supports-color + dev: true + + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.15.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0): + resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 6.15.0(eslint@8.56.0)(typescript@5.3.3) + debug: 3.2.7 + eslint: 8.56.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.15.0)(eslint-plugin-import@2.29.1)(eslint@8.56.0) + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.15.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0): + resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + '@typescript-eslint/parser': 6.15.0(eslint@8.56.0)(typescript@5.3.3) + array-includes: 3.1.7 + array.prototype.findlastindex: 1.2.3 + array.prototype.flat: 1.3.2 + array.prototype.flatmap: 1.3.2 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.56.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.15.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) + hasown: 2.0.0 + is-core-module: 2.13.1 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.7 + object.groupby: 1.0.1 + object.values: 1.1.7 + semver: 6.3.1 + tsconfig-paths: 3.15.0 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: true + + /eslint-plugin-jsx-a11y@6.8.0(eslint@8.56.0): + resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} + engines: {node: '>=4.0'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + '@babel/runtime': 7.23.6 + aria-query: 5.3.0 + array-includes: 3.1.7 + array.prototype.flatmap: 1.3.2 + ast-types-flow: 0.0.8 + axe-core: 4.7.0 + axobject-query: 3.2.1 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + es-iterator-helpers: 1.0.15 + eslint: 8.56.0 + hasown: 2.0.0 + jsx-ast-utils: 3.3.5 + language-tags: 1.0.9 + minimatch: 3.1.2 + object.entries: 1.1.7 + object.fromentries: 2.0.7 + dev: true + + /eslint-plugin-prettier@5.1.1(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.1.1): + resolution: {integrity: sha512-WQpV3mSmIobb77s4qiCZu3dBrZZ0rj8ckSfBtRrgNK9Wnh2s3eiaxNTWloz1LJ1WtvqZES/PAI7PLvsrGt/CEA==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' + eslint-config-prettier: '*' + prettier: '>=3.0.0' + peerDependenciesMeta: + '@types/eslint': + optional: true + eslint-config-prettier: + optional: true + dependencies: + eslint: 8.56.0 + eslint-config-prettier: 9.1.0(eslint@8.56.0) + prettier: 3.1.1 + prettier-linter-helpers: 1.0.0 + synckit: 0.8.6 + dev: true + + /eslint-plugin-react-hooks@4.6.0(eslint@8.56.0): + resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + dependencies: + eslint: 8.56.0 + dev: true + + /eslint-plugin-react@7.33.2(eslint@8.56.0): + resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + array-includes: 3.1.6 + array.prototype.flatmap: 1.3.1 + array.prototype.tosorted: 1.1.2 + doctrine: 2.1.0 + es-iterator-helpers: 1.0.15 + eslint: 8.56.0 + estraverse: 5.3.0 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.7 + object.fromentries: 2.0.7 + object.hasown: 1.1.3 + object.values: 1.1.7 + prop-types: 15.8.1 + resolve: 2.0.0-next.4 + semver: 6.3.1 + string.prototype.matchall: 4.0.9 + dev: true + + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: true + + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /eslint@8.56.0: + resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/regexpp': 4.8.0 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.56.0 + '@humanwhocodes/config-array': 0.11.13 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.21.0 + graphemer: 1.4.0 + ignore: 5.2.4 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.3 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + dev: true + + /espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.10.0 + acorn-jsx: 5.3.2(acorn@8.10.0) + eslint-visitor-keys: 3.4.3 + dev: true + + /esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + dev: true + + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + dev: true + + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + dev: true + + /estree-walker@1.0.1: + resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} + dev: true + + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: true + + /execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + + /execa@7.2.0: + resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} + engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 4.3.1 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.2.0 + onetime: 6.0.0 + signal-exit: 3.0.7 + strip-final-newline: 3.0.0 + dev: true + + /execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.2.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + dev: true + + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + /fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + dev: true + + /fast-glob@3.3.1: + resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true + + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + dev: true + + /fast-loops@1.1.3: + resolution: {integrity: sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g==} + dev: false + + /fast-shallow-equal@1.0.0: + resolution: {integrity: sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==} + dev: false + + /fastest-stable-stringify@2.0.2: + resolution: {integrity: sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==} + dev: false + + /fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + dependencies: + reusify: 1.0.4 + dev: true + + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.1.0 + dev: true + + /filelist@1.0.4: + resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + dependencies: + minimatch: 5.1.6 + dev: true + + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: true + + /flag-icons@7.1.0: + resolution: {integrity: sha512-AH4v++19bpC5P3Wh767top4wylJYJCWkFnvNiDqGHDxqSqdMZ49jpLXp8PWBHTTXaNQ+/A+QPrOwyiIGaiIhmw==} + dev: false + + /flat-cache@3.1.0: + resolution: {integrity: sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==} + engines: {node: '>=12.0.0'} + dependencies: + flatted: 3.2.7 + keyv: 4.5.3 + rimraf: 3.0.2 + dev: true + + /flatted@3.2.7: + resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} + dev: true + + /focus-trap-react@10.2.3(prop-types@15.8.1)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-YXBpFu/hIeSu6NnmV2xlXzOYxuWkoOtar9jzgp3lOmjWLWY59C/b8DtDHEAV4SPU07Nd/t+nS/SBNGkhUBFmEw==} + peerDependencies: + prop-types: ^15.8.1 + react: '>=16.3.0' + react-dom: '>=16.3.0' + dependencies: + focus-trap: 7.5.4 + prop-types: 15.8.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + tabbable: 6.2.0 + dev: false + + /focus-trap@7.5.4: + resolution: {integrity: sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==} + dependencies: + tabbable: 6.2.0 + dev: false + + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + dependencies: + is-callable: 1.2.7 + dev: true + + /foreground-child@3.1.1: + resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + engines: {node: '>=14'} + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + dev: true + + /form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + + /fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + dev: true + + /fs-extra@11.1.1: + resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} + engines: {node: '>=14.14'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + + /fs-extra@9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: true + + /fscreen@1.2.0: + resolution: {integrity: sha512-hlq4+BU0hlPmwsFjwGGzZ+OZ9N/wq9Ljg/sq3pX+2CD7hrJsX9tJgWWK/wiNTFM212CLHWhicOoqwXyZGGetJg==} + dev: false + + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + optional: true + + /function-bind@1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + dev: true + + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + dev: true + + /function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + functions-have-names: 1.2.3 + dev: true + + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: true + + /fuse.js@7.0.0: + resolution: {integrity: sha512-14F4hBIxqKvD4Zz/XjDc3y94mNZN6pRv3U13Udo0lNLCWRBUsrMv2xwcF/y/Z5sV6+FQW+/ow68cHpm4sunt8Q==} + engines: {node: '>=10'} + dev: false + + /gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + dev: true + + /get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + dev: true + + /get-func-name@3.0.0: + resolution: {integrity: sha512-6lB4zp64YzgT5KVoAuY0vBXQXNObRmelzfVCpx2dHkGVskX8WwjxTVd/kGUsVzxuOpSEF9BcD54ChSKMVjSsfQ==} + engines: {node: '>= 12'} + dev: true + + /get-intrinsic@1.2.1: + resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} + dependencies: + function-bind: 1.1.1 + has: 1.0.3 + has-proto: 1.0.1 + has-symbols: 1.0.3 + dev: true + + /get-own-enumerable-property-symbols@3.0.2: + resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} + dev: true + + /get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + dev: true + + /get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + dev: true + + /get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + dev: true + + /get-tsconfig@4.7.2: + resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} + dependencies: + resolve-pkg-maps: 1.0.0 + dev: true + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob@10.3.10: + resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + dependencies: + foreground-child: 3.1.1 + jackspeak: 2.3.6 + minimatch: 9.0.3 + minipass: 7.0.3 + path-scurry: 1.10.1 + dev: true + + /glob@7.1.6: + resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + + /globals@13.21.0: + resolution: {integrity: sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: true + + /globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} + dependencies: + define-properties: 1.2.0 + dev: true + + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.1 + ignore: 5.2.4 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.1 + dev: true + + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + dev: true + + /graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + dev: true + + /handlebars@4.7.8: + resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} + engines: {node: '>=0.4.7'} + hasBin: true + dependencies: + minimist: 1.2.8 + neo-async: 2.6.2 + source-map: 0.6.1 + wordwrap: 1.0.0 + optionalDependencies: + uglify-js: 3.17.4 + dev: true + + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: true + + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: true + + /has-property-descriptors@1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + dependencies: + get-intrinsic: 1.2.1 + dev: true + + /has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} + dev: true + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: true + + /has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /has@1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: 1.1.1 + dev: true + + /hasown@2.0.0: + resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + dev: true + + /hls.js@1.4.14: + resolution: {integrity: sha512-UppQjyvPVclg+6t2KY/Rv03h0+bA5u6zwqVoz4LAC/L0fgYmIaCD7ZCrwe8WI1Gv01be1XL0QFsRbSdIHV/Wbw==} + dev: false + + /hoist-non-react-statics@3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + dependencies: + react-is: 16.13.1 + dev: false + + /html-encoding-sniffer@4.0.0: + resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} + engines: {node: '>=18'} + dependencies: + whatwg-encoding: 3.1.1 + dev: true + + /html-parse-stringify@3.0.1: + resolution: {integrity: sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==} + dependencies: + void-elements: 3.1.0 + dev: false + + /htmlparser2@8.0.2: + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.1.0 + entities: 4.5.0 + dev: false + + /http-proxy-agent@7.0.0: + resolution: {integrity: sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==} + engines: {node: '>= 14'} + dependencies: + agent-base: 7.1.0 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /https-proxy-agent@7.0.2: + resolution: {integrity: sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==} + engines: {node: '>= 14'} + dependencies: + agent-base: 7.1.0 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + dev: true + + /human-signals@4.3.1: + resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} + engines: {node: '>=14.18.0'} + dev: true + + /human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + dev: true + + /hyphenate-style-name@1.0.4: + resolution: {integrity: sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==} + dev: false + + /i18next@23.7.11: + resolution: {integrity: sha512-A/vOkw8vY99YHU9A1Td3I1dcTiYaPnwBWzrpVzfXUXSYgogK3cmBcmop/0cnXPc6QpUWIyqaugKNxRUEZVk9Nw==} + dependencies: + '@babel/runtime': 7.23.6 + dev: false + + /iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /idb@7.1.1: + resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==} + dev: true + + /ignore@5.2.4: + resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + engines: {node: '>= 4'} + dev: true + + /immer@10.0.3: + resolution: {integrity: sha512-pwupu3eWfouuaowscykeckFmVTpqbzW+rXFCX8rQLkZzM9ftBmU/++Ra+o+L27mz03zJTlyV4UUr+fdKNffo4A==} + dev: false + + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true + + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + dev: true + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: true + + /inline-style-prefixer@7.0.0: + resolution: {integrity: sha512-I7GEdScunP1dQ6IM2mQWh6v0mOYdYmH3Bp31UecKdrcUgcURTcctSe1IECdUznSHKSmsHtjrT3CwCPI1pyxfUQ==} + dependencies: + css-in-js-utils: 3.1.0 + fast-loops: 1.1.3 + dev: false + + /internal-slot@1.0.5: + resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.1 + has: 1.0.3 + side-channel: 1.0.4 + dev: true + + /invariant@2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + dependencies: + loose-envify: 1.4.0 + dev: false + + /is-array-buffer@3.0.2: + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-typed-array: 1.1.12 + dev: true + + /is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + dev: true + + /is-async-function@2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.2 + dev: true + + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + dev: true + + /is-core-module@2.13.0: + resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} + dependencies: + has: 1.0.3 + dev: true + + /is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + dependencies: + hasown: 2.0.0 + dev: true + + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + dev: true + + /is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + dev: true + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + /is-finalizationregistry@1.0.2: + resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + dependencies: + call-bind: 1.0.2 + dev: true + + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: true + + /is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + + /is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + dependencies: + is-docker: 3.0.0 + dev: true + + /is-map@2.0.2: + resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + dev: true + + /is-module@1.0.0: + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} + dev: true + + /is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} + dev: true + + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + /is-obj@1.0.1: + resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} + engines: {node: '>=0.10.0'} + dev: true + + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: true + + /is-potential-custom-element-name@1.0.1: + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + dev: true + + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-regexp@1.0.0: + resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} + engines: {node: '>=0.10.0'} + dev: true + + /is-set@2.0.2: + resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} + dev: true + + /is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.2 + dev: true + + /is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + dev: true + + /is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /is-typed-array@1.1.12: + resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} + engines: {node: '>= 0.4'} + dependencies: + which-typed-array: 1.1.11 + dev: true + + /is-weakmap@2.0.1: + resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} + dev: true + + /is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + dependencies: + call-bind: 1.0.2 + dev: true + + /is-weakset@2.0.2: + resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + dev: true + + /is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + dependencies: + is-docker: 2.2.1 + dev: true + + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: true + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: true + + /iso-639-1@3.1.0: + resolution: {integrity: sha512-rWcHp9dcNbxa5C8jA/cxFlWNFNwy5Vup0KcFvgA8sPQs9ZeJHj/Eq0Y8Yz2eL8XlWYpxw4iwh9FfTeVxyqdRMw==} + engines: {node: '>=6.0'} + dev: false + + /iterator.prototype@1.1.2: + resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + dependencies: + define-properties: 1.2.1 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + reflect.getprototypeof: 1.0.4 + set-function-name: 2.0.1 + dev: true + + /jackspeak@2.3.6: + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} + engines: {node: '>=14'} + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + dev: true + + /jake@10.8.7: + resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} + engines: {node: '>=10'} + hasBin: true + dependencies: + async: 3.2.4 + chalk: 4.1.2 + filelist: 1.0.4 + minimatch: 3.1.2 + dev: true + + /jest-worker@26.6.2: + resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} + engines: {node: '>= 10.13.0'} + dependencies: + '@types/node': 20.10.5 + merge-stream: 2.0.0 + supports-color: 7.2.0 + dev: true + + /jiti@1.19.3: + resolution: {integrity: sha512-5eEbBDQT/jF1xg6l36P+mWGGoH9Spuy0PCdSr2dtWRDGC6ph/w9ZCL4lmESW8f8F7MwT3XKescfP0wnZWAKL9w==} + hasBin: true + dev: true + + /js-cookie@2.2.1: + resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==} + dev: false + + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + + /jsdom@23.0.1: + resolution: {integrity: sha512-2i27vgvlUsGEBO9+/kJQRbtqtm+191b5zAZrU/UezVmnC2dlDAFLgDYJvAEi94T4kjsRKkezEtLQTgsNEsW2lQ==} + engines: {node: '>=18'} + peerDependencies: + canvas: ^2.11.2 + peerDependenciesMeta: + canvas: + optional: true + dependencies: + cssstyle: 3.0.0 + data-urls: 5.0.0 + decimal.js: 10.4.3 + form-data: 4.0.0 + html-encoding-sniffer: 4.0.0 + http-proxy-agent: 7.0.0 + https-proxy-agent: 7.0.2 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.7 + parse5: 7.1.2 + rrweb-cssom: 0.6.0 + saxes: 6.0.0 + symbol-tree: 3.2.4 + tough-cookie: 4.1.3 + w3c-xmlserializer: 5.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 3.1.1 + whatwg-mimetype: 4.0.0 + whatwg-url: 14.0.0 + ws: 8.15.1 + xml-name-validator: 5.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + + /jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + dev: true + + /jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + dev: true + + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: true + + /json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + dev: true + + /json-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + dev: true + + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: true + + /json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + dependencies: + minimist: 1.2.8 + dev: true + + /json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + /jsonc-parser@3.2.0: + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} + dev: true + + /jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.0 + optionalDependencies: + graceful-fs: 4.2.11 + dev: true + + /jsonpointer@5.0.1: + resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} + engines: {node: '>=0.10.0'} + dev: true + + /jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + dependencies: + array-includes: 3.1.7 + array.prototype.flat: 1.3.1 + object.assign: 4.1.4 + object.values: 1.1.7 + dev: true + + /just-unique@4.2.0: + resolution: {integrity: sha512-cxQGGUiit6CGUpuuiezY8N4m1wgF4o7127rXEXDFcxeDUFfdV7gSkwA26Fe2wWBiNQq2SZOgN4gSmMxB/StA8Q==} + dev: true + + /jwt-decode@4.0.0: + resolution: {integrity: sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==} + engines: {node: '>=18'} + dev: false + + /keyv@4.5.3: + resolution: {integrity: sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==} + dependencies: + json-buffer: 3.0.1 + dev: true + + /kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + dev: false + + /language-subtag-registry@0.3.22: + resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} + dev: true + + /language-tags@1.0.9: + resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} + engines: {node: '>=0.10'} + dependencies: + language-subtag-registry: 0.3.22 + dev: true + + /leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + dev: true + + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + dev: true + + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: true + + /local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + engines: {node: '>=14'} + dependencies: + mlly: 1.4.2 + pkg-types: 1.0.3 + dev: true + + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: true + + /lodash.compact@3.0.1: + resolution: {integrity: sha512-2ozeiPi+5eBXW1CLtzjk8XQFhQOEMwwfxblqeq6EGyTxZJ1bPATqilY0e6g2SLQpP4KuMeuioBhEnWz5Pr7ICQ==} + dev: false + + /lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + dev: true + + /lodash.isequal@4.5.0: + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + dev: false + + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: true + + /lodash.mergewith@4.6.2: + resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} + dev: true + + /lodash.pick@4.4.0: + resolution: {integrity: sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==} + dev: true + + /lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + dev: true + + /lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + dev: true + + /loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + dependencies: + js-tokens: 4.0.0 + + /loupe@2.3.6: + resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} + deprecated: Please upgrade to 2.3.7 which fixes GHSA-4q6p-r6v2-jvc5 + dependencies: + get-func-name: 3.0.0 + dev: true + + /loupe@2.3.7: + resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + dependencies: + get-func-name: 2.0.2 + dev: true + + /lru-cache@10.0.1: + resolution: {integrity: sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==} + engines: {node: 14 || >=16.14} + dev: true + + /lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + dependencies: + yallist: 3.1.1 + + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + + /magic-string@0.25.9: + resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} + dependencies: + sourcemap-codec: 1.4.8 + dev: true + + /magic-string@0.30.5: + resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /mdn-data@2.0.14: + resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} + dev: false + + /merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: true + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: true + + /million@2.6.4: + resolution: {integrity: sha512-voUkdd/jHWrG+7NS+mX49Pat+POKdgGW78V7pYMSrTaOjUitR6ySEcAci8hn17Rsx1IMI3+5w41dkADM1J1ZEg==} + hasBin: true + dependencies: + '@babel/core': 7.23.6 + '@babel/generator': 7.23.6 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.6) + '@babel/types': 7.23.6 + kleur: 4.1.5 + rollup: /@rollup/wasm-node@4.12.0 + unplugin: 1.5.1 + transitivePeerDependencies: + - supports-color + dev: false + + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + + /mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + dev: true + + /mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + dev: true + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + dev: true + + /minipass@7.0.3: + resolution: {integrity: sha512-LhbbwCfz3vsb12j/WkWQPZfKTsgqIe1Nf/ti1pKjYESGLHIVjWU96G9/ljLH4F9mWNVhlQOm0VySdAWzf05dpg==} + engines: {node: '>=16 || 14 >=14.17'} + dev: true + + /mlly@1.4.2: + resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} + dependencies: + acorn: 8.10.0 + pathe: 1.1.1 + pkg-types: 1.0.3 + ufo: 1.3.0 + dev: true + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + dev: true + + /mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + dev: true + + /nano-css@5.6.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-T2Mhc//CepkTa3X4pUhKgbEheJHYAxD0VptuqFhDbGMUWVV2m+lkNiW/Ieuj35wrfC8Zm0l7HvssQh7zcEttSw==} + peerDependencies: + react: '*' + react-dom: '*' + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + css-tree: 1.1.3 + csstype: 3.1.2 + fastest-stable-stringify: 2.0.2 + inline-style-prefixer: 7.0.0 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + rtl-css-js: 1.16.1 + stacktrace-js: 2.0.2 + stylis: 4.3.0 + dev: false + + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + /nanoid@5.0.3: + resolution: {integrity: sha512-I7X2b22cxA4LIHXPSqbBCEQSL+1wv8TuoefejsX4HFWyC6jc5JG7CEaxOltiKjc1M+YCS2YkrZZcj4+dytw9GA==} + engines: {node: ^18 || >=20} + hasBin: true + dev: false + + /nanoid@5.0.4: + resolution: {integrity: sha512-vAjmBf13gsmhXSgBrtIclinISzFFy22WwCYoyilZlsrRXNIHSwgFQ1bEdjRwMT3aoadeIF6HMuDRlOxzfXV8ig==} + engines: {node: ^18 || >=20} + hasBin: true + dev: false + + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: true + + /neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + dev: true + + /node-fetch-native@1.4.0: + resolution: {integrity: sha512-F5kfEj95kX8tkDhUCYdV8dg3/8Olx/94zB8+ZNthFs6Bz31UpUi8Xh40TN3thLwXgrwXry1pEg9lJ++tLWTcqA==} + dev: false + + /node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + dependencies: + whatwg-url: 5.0.0 + dev: false + + /node-forge@1.3.1: + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + engines: {node: '>= 6.13.0'} + dev: false + + /node-releases@2.0.13: + resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} + dev: true + + /node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + /normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + dev: true + + /npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + dependencies: + path-key: 3.1.1 + dev: true + + /npm-run-path@5.2.0: + resolution: {integrity: sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + path-key: 4.0.0 + dev: true + + /nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + dependencies: + boolbase: 1.0.0 + dev: false + + /nwsapi@2.2.7: + resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} + dev: true + + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + /object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + dev: true + + /object-inspect@1.12.3: + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + dev: true + + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: true + + /object.assign@4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: true + + /object.entries@1.1.7: + resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + dev: true + + /object.fromentries@2.0.7: + resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + dev: true + + /object.groupby@1.0.1: + resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + get-intrinsic: 1.2.1 + dev: true + + /object.hasown@1.1.3: + resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==} + dependencies: + define-properties: 1.2.0 + es-abstract: 1.22.1 + dev: true + + /object.values@1.1.7: + resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + dev: true + + /ofetch@1.3.3: + resolution: {integrity: sha512-s1ZCMmQWXy4b5K/TW9i/DtiN8Ku+xCiHcjQ6/J/nDdssirrQNOoB165Zu8EqLMA2lln1JUth9a0aW9Ap2ctrUg==} + dependencies: + destr: 2.0.1 + node-fetch-native: 1.4.0 + ufo: 1.3.0 + dev: false + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + dev: true + + /onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 + dev: true + + /onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + dependencies: + mimic-fn: 4.0.0 + dev: true + + /open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + dev: true + + /open@9.1.0: + resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} + engines: {node: '>=14.16'} + dependencies: + default-browser: 4.0.0 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + is-wsl: 2.2.0 + dev: true + + /optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + engines: {node: '>= 0.8.0'} + dependencies: + '@aashutoshrathi/word-wrap': 1.2.6 + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: true + + /p-limit@5.0.0: + resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} + engines: {node: '>=18'} + dependencies: + yocto-queue: 1.0.0 + dev: true + + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + dev: true + + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: true + + /parse5-htmlparser2-tree-adapter@7.0.0: + resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==} + dependencies: + domhandler: 5.0.3 + parse5: 7.1.2 + dev: false + + /parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + dependencies: + entities: 4.5.0 + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: true + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true + + /path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + dev: true + + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: true + + /path-scurry@1.10.1: + resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + lru-cache: 10.0.1 + minipass: 7.0.3 + dev: true + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: true + + /pathe@1.1.1: + resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} + dev: true + + /pathval@1.1.1: + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + dev: true + + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + /pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + dev: true + + /pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + dev: true + + /pkg-types@1.0.3: + resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} + dependencies: + jsonc-parser: 3.2.0 + mlly: 1.4.2 + pathe: 1.1.1 + dev: true + + /postcss-import@15.1.0(postcss@8.4.32): + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: '>=8.4.31' + dependencies: + postcss: 8.4.32 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.4 + dev: true + + /postcss-js@4.0.1(postcss@8.4.32): + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: '>=8.4.31' + dependencies: + camelcase-css: 2.0.1 + postcss: 8.4.32 + dev: true + + /postcss-load-config@4.0.1(postcss@8.4.32): + resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.4.31' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 2.1.0 + postcss: 8.4.32 + yaml: 2.3.2 + dev: true + + /postcss-nested@6.0.1(postcss@8.4.32): + resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: '>=8.4.31' + dependencies: + postcss: 8.4.32 + postcss-selector-parser: 6.0.13 + dev: true + + /postcss-rtl@2.0.0(postcss@8.4.32): + resolution: {integrity: sha512-vFu78CvaGY9BafWRHNgDm6OjUxzRCWWCrp+KtnyXdgwibLwb/j5ls8Z/ubvOsk9B/Q2NLwSPrXRARKMaa9RBmA==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: '>=8.4.31' + dependencies: + postcss: 8.4.32 + rtlcss: 4.0.0 + dev: true + + /postcss-rtlcss@4.0.9(postcss@8.4.32): + resolution: {integrity: sha512-dCNKEf+FgTv+EA3XI8ysg2RnpS5s3/iZmU+9qpCNFxHU/BhK+4hz7jyCsCAfo0CLnDrMPtaQENhwb+EGm1wh7Q==} + engines: {node: '>=18.0.0'} + peerDependencies: + postcss: '>=8.4.31' + dependencies: + postcss: 8.4.32 + rtlcss: 4.1.1 + dev: true + + /postcss-selector-parser@6.0.13: + resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + dev: true + + /postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + dev: true + + /postcss@8.4.32: + resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: true + + /prettier-linter-helpers@1.0.0: + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + engines: {node: '>=6.0.0'} + dependencies: + fast-diff: 1.3.0 + dev: true + + /prettier-plugin-tailwindcss@0.5.9(prettier@3.1.1): + resolution: {integrity: sha512-9x3t1s2Cjbut2QiP+O0mDqV3gLXTe2CgRlQDgucopVkUdw26sQi53p/q4qvGxMLBDfk/dcTV57Aa/zYwz9l8Ew==} + engines: {node: '>=14.21.3'} + peerDependencies: + '@ianvs/prettier-plugin-sort-imports': '*' + '@prettier/plugin-pug': '*' + '@shopify/prettier-plugin-liquid': '*' + '@trivago/prettier-plugin-sort-imports': '*' + prettier: ^3.0 + prettier-plugin-astro: '*' + prettier-plugin-css-order: '*' + prettier-plugin-import-sort: '*' + prettier-plugin-jsdoc: '*' + prettier-plugin-marko: '*' + prettier-plugin-organize-attributes: '*' + prettier-plugin-organize-imports: '*' + prettier-plugin-style-order: '*' + prettier-plugin-svelte: '*' + prettier-plugin-twig-melody: '*' + peerDependenciesMeta: + '@ianvs/prettier-plugin-sort-imports': + optional: true + '@prettier/plugin-pug': + optional: true + '@shopify/prettier-plugin-liquid': + optional: true + '@trivago/prettier-plugin-sort-imports': + optional: true + prettier-plugin-astro: + optional: true + prettier-plugin-css-order: + optional: true + prettier-plugin-import-sort: + optional: true + prettier-plugin-jsdoc: + optional: true + prettier-plugin-marko: + optional: true + prettier-plugin-organize-attributes: + optional: true + prettier-plugin-organize-imports: + optional: true + prettier-plugin-style-order: + optional: true + prettier-plugin-svelte: + optional: true + prettier-plugin-twig-melody: + optional: true + dependencies: + prettier: 3.1.1 + dev: true + + /prettier@3.1.1: + resolution: {integrity: sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==} + engines: {node: '>=14'} + hasBin: true + dev: true + + /pretty-bytes@5.6.0: + resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} + engines: {node: '>=6'} + dev: true + + /pretty-bytes@6.1.1: + resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==} + engines: {node: ^14.13.1 || >=16.0.0} + dev: true + + /pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.2.0 + dev: true + + /prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + + /psl@1.9.0: + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + dev: true + + /punycode@2.3.0: + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + engines: {node: '>=6'} + dev: true + + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + dev: true + + /querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + dev: true + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true + + /randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /react-dom@18.2.0(react@18.2.0): + resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + peerDependencies: + react: ^18.2.0 + dependencies: + loose-envify: 1.4.0 + react: 18.2.0 + scheduler: 0.23.0 + dev: false + + /react-fast-compare@3.2.2: + resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} + dev: false + + /react-ga4@2.1.0: + resolution: {integrity: sha512-ZKS7PGNFqqMd3PJ6+C2Jtz/o1iU9ggiy8Y8nUeksgVuvNISbmrQtJiZNvC/TjDsqD0QlU5Wkgs7i+w9+OjHhhQ==} + dev: false + + /react-google-recaptcha-v3@1.10.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-K3AYzSE0SasTn+XvV2tq+6YaxM+zQypk9rbCgG4OVUt7Rh4ze9basIKefoBz9sC0CNslJj9N1uwTTgRMJQbQJQ==} + peerDependencies: + react: ^16.3 || ^17.0 || ^18.0 + react-dom: ^17.0 || ^18.0 + dependencies: + hoist-non-react-statics: 3.3.2 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /react-helmet-async@2.0.4(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-yxjQMWposw+akRfvpl5+8xejl4JtUlHnEBcji6u8/e6oc7ozT+P9PNTWMhCbz2y9tc5zPegw2BvKjQA+NwdEjQ==} + peerDependencies: + react: ^16.6.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 + dependencies: + invariant: 2.2.4 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-fast-compare: 3.2.2 + shallowequal: 1.1.0 + dev: false + + /react-i18next@14.0.0(i18next@23.7.11)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-OCrS8rHNAmnr8ggGRDxjakzihrMW7HCbsplduTm3EuuQ6fyvWGT41ksZpqbduYoqJurBmEsEVZ1pILSUWkHZng==} + peerDependencies: + i18next: '>= 23.2.3' + react: '>= 16.8.0' + react-dom: '*' + react-native: '*' + peerDependenciesMeta: + react-dom: + optional: true + react-native: + optional: true + dependencies: + '@babel/runtime': 7.22.11 + html-parse-stringify: 3.0.1 + i18next: 23.7.11 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + /react-is@18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + dev: true + + /react-lazy-with-preload@2.2.1: + resolution: {integrity: sha512-ONSb8gizLE5jFpdHAclZ6EAAKuFX2JydnFXPPPjoUImZlLjGtKzyBS8SJgJq7CpLgsGKh9QCZdugJyEEOVC16Q==} + dev: false + + /react-refresh@0.14.0: + resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} + engines: {node: '>=0.10.0'} + dev: true + + /react-router-dom@6.21.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-QCNrtjtDPwHDO+AO21MJd7yIcr41UetYt5jzaB9Y1UYaPTCnVuJq6S748g1dE11OQlCFIQg+RtAA1SEZIyiBeA==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + dependencies: + '@remix-run/router': 1.14.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-router: 6.21.1(react@18.2.0) + dev: false + + /react-router@6.21.1(react@18.2.0): + resolution: {integrity: sha512-W0l13YlMTm1YrpVIOpjCADJqEUpz1vm+CMo47RuFX4Ftegwm6KOYsL5G3eiE52jnJpKvzm6uB/vTKTPKM8dmkA==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + dependencies: + '@remix-run/router': 1.14.1 + react: 18.2.0 + dev: false + + /react-sticky-el@2.1.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-oo+a2GedF4QMfCfm20e9gD+RuuQp/ngvwGMUXAXpST+h4WnmKhuv7x6MQ4X/e3AHiLYgE0zDyJo1Pzo8m51KpA==} + peerDependencies: + react: '>=16.3.0' + react-dom: '>=16.3.0' + dependencies: + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /react-turnstile@1.1.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-wfhSf4JtXlmLRkfxMryU8yEeCbh401muKoInhx+TegYwP8RprUW5XPZa8WnCNZiYpMy1i6IXAb1Ar7xj5HxJag==} + peerDependencies: + react: '>= 17.0.0' + react-dom: '>= 17.0.0' + dependencies: + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /react-universal-interface@0.6.2(react@18.2.0)(tslib@2.6.2): + resolution: {integrity: sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==} + peerDependencies: + react: '*' + tslib: '*' + dependencies: + react: 18.2.0 + tslib: 2.6.2 + dev: false + + /react-use@17.4.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-1jPtmWLD8OJJNYCdYLJEH/HM+bPDfJuyGwCYeJFgPmWY8ttwpgZnW5QnzgM55CYUByUiTjHxsGOnEpLl6yQaoQ==} + peerDependencies: + react: '*' + react-dom: '*' + dependencies: + '@types/js-cookie': 2.2.7 + '@xobotyi/scrollbar-width': 1.9.5 + copy-to-clipboard: 3.3.3 + fast-deep-equal: 3.1.3 + fast-shallow-equal: 1.0.0 + js-cookie: 2.2.1 + nano-css: 5.6.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-universal-interface: 0.6.2(react@18.2.0)(tslib@2.6.2) + resize-observer-polyfill: 1.5.1 + screenfull: 5.2.0 + set-harmonic-interval: 1.0.1 + throttle-debounce: 3.0.1 + ts-easing: 0.2.0 + tslib: 2.6.2 + dev: false + + /react@18.2.0: + resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + engines: {node: '>=0.10.0'} + dependencies: + loose-envify: 1.4.0 + dev: false + + /read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + dependencies: + pify: 2.3.0 + dev: true + + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + + /reflect.getprototypeof@1.0.4: + resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.1 + get-intrinsic: 1.2.1 + globalthis: 1.0.3 + which-builtin-type: 1.1.3 + dev: true + + /regenerate-unicode-properties@10.1.0: + resolution: {integrity: sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==} + engines: {node: '>=4'} + dependencies: + regenerate: 1.4.2 + dev: true + + /regenerate@1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + dev: true + + /regenerator-runtime@0.14.0: + resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} + + /regenerator-transform@0.15.2: + resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} + dependencies: + '@babel/runtime': 7.22.11 + dev: true + + /regexp.prototype.flags@1.5.0: + resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + functions-have-names: 1.2.3 + dev: true + + /regexpu-core@5.3.2: + resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} + engines: {node: '>=4'} + dependencies: + '@babel/regjsgen': 0.8.0 + regenerate: 1.4.2 + regenerate-unicode-properties: 10.1.0 + regjsparser: 0.9.1 + unicode-match-property-ecmascript: 2.0.0 + unicode-match-property-value-ecmascript: 2.1.0 + dev: true + + /regjsparser@0.9.1: + resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} + hasBin: true + dependencies: + jsesc: 0.5.0 + dev: true + + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + dev: true + + /require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + dev: true + + /requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + dev: true + + /resize-observer-polyfill@1.5.1: + resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} + dev: false + + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: true + + /resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + dev: true + + /resolve@1.22.4: + resolution: {integrity: sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==} + hasBin: true + dependencies: + is-core-module: 2.13.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /resolve@2.0.0-next.4: + resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} + hasBin: true + dependencies: + is-core-module: 2.13.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /rollup-plugin-terser@7.0.2(@rollup/wasm-node@4.12.0): + resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==} + deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser + peerDependencies: + rollup: npm:@rollup/wasm-node + dependencies: + '@babel/code-frame': 7.23.5 + jest-worker: 26.6.2 + rollup: /@rollup/wasm-node@4.12.0 + serialize-javascript: 4.0.0 + terser: 5.19.3 + dev: true + + /rollup-plugin-visualizer@5.11.0(@rollup/wasm-node@4.12.0): + resolution: {integrity: sha512-exM0Ms2SN3AgTzMeW7y46neZQcyLY7eKwWAop1ZoRTCZwyrIRdMMJ6JjToAJbML77X/9N8ZEpmXG4Z/Clb9k8g==} + engines: {node: '>=14'} + hasBin: true + peerDependencies: + rollup: npm:@rollup/wasm-node + peerDependenciesMeta: + rollup: + optional: true + dependencies: + open: 8.4.2 + picomatch: 2.3.1 + rollup: /@rollup/wasm-node@4.12.0 + source-map: 0.7.4 + yargs: 17.7.2 + dev: true + + /rrweb-cssom@0.6.0: + resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} + dev: true + + /rtl-css-js@1.16.1: + resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==} + dependencies: + '@babel/runtime': 7.22.11 + dev: false + + /rtlcss@4.0.0: + resolution: {integrity: sha512-j6oypPP+mgFwDXL1JkLCtm6U/DQntMUqlv5SOhpgHhdIE+PmBcjrtAHIpXfbIup47kD5Sgja9JDsDF1NNOsBwQ==} + engines: {node: '>=12.0.0'} + hasBin: true + dependencies: + escalade: 3.1.1 + picocolors: 1.0.0 + postcss: 8.4.32 + strip-json-comments: 3.1.1 + dev: true + + /rtlcss@4.1.1: + resolution: {integrity: sha512-/oVHgBtnPNcggP2aVXQjSy6N1mMAfHg4GSag0QtZBlD5bdDgAHwr4pydqJGd+SUCu9260+Pjqbjwtvu7EMH1KQ==} + engines: {node: '>=12.0.0'} + hasBin: true + dependencies: + escalade: 3.1.1 + picocolors: 1.0.0 + postcss: 8.4.32 + strip-json-comments: 3.1.1 + dev: true + + /run-applescript@5.0.0: + resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} + engines: {node: '>=12'} + dependencies: + execa: 5.1.1 + dev: true + + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: true + + /safe-array-concat@1.0.0: + resolution: {integrity: sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==} + engines: {node: '>=0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + isarray: 2.0.5 + dev: true + + /safe-array-concat@1.0.1: + resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} + engines: {node: '>=0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + isarray: 2.0.5 + dev: true + + /safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + dev: true + + /safe-regex-test@1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-regex: 1.1.4 + dev: true + + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + dev: true + + /saxes@6.0.0: + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} + engines: {node: '>=v12.22.7'} + dependencies: + xmlchars: 2.2.0 + dev: true + + /scheduler@0.23.0: + resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + dependencies: + loose-envify: 1.4.0 + dev: false + + /screenfull@5.2.0: + resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==} + engines: {node: '>=0.10.0'} + dev: false + + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + /semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + + /serialize-javascript@4.0.0: + resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==} + dependencies: + randombytes: 2.1.0 + dev: true + + /set-cookie-parser@2.6.0: + resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} + dev: false + + /set-function-name@2.0.1: + resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.1 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.0 + dev: true + + /set-harmonic-interval@1.0.1: + resolution: {integrity: sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==} + engines: {node: '>=6.9'} + dev: false + + /shallowequal@1.1.0: + resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} + dev: false + + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: true + + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: true + + /side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + object-inspect: 1.12.3 + dev: true + + /siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + dev: true + + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: true + + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + dev: true + + /simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + dependencies: + is-arrayish: 0.3.2 + dev: true + + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: true + + /slugify@1.6.6: + resolution: {integrity: sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==} + engines: {node: '>=8.0.0'} + dev: false + + /source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + dev: true + + /source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + dev: true + + /source-map@0.5.6: + resolution: {integrity: sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==} + engines: {node: '>=0.10.0'} + dev: false + + /source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + /source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + dev: true + + /source-map@0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} + dependencies: + whatwg-url: 7.1.0 + dev: true + + /sourcemap-codec@1.4.8: + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} + deprecated: Please use @jridgewell/sourcemap-codec instead + dev: true + + /stack-generator@2.0.10: + resolution: {integrity: sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==} + dependencies: + stackframe: 1.3.4 + dev: false + + /stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + dev: true + + /stackframe@1.3.4: + resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} + dev: false + + /stacktrace-gps@3.1.2: + resolution: {integrity: sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==} + dependencies: + source-map: 0.5.6 + stackframe: 1.3.4 + dev: false + + /stacktrace-js@2.0.2: + resolution: {integrity: sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==} + dependencies: + error-stack-parser: 2.1.4 + stack-generator: 2.0.10 + stacktrace-gps: 3.1.2 + dev: false + + /std-env@3.7.0: + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + dev: true + + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + dev: true + + /string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + dev: true + + /string.prototype.matchall@4.0.9: + resolution: {integrity: sha512-6i5hL3MqG/K2G43mWXWgP+qizFW/QH/7kCNN13JrJS5q48FN5IKksLDscexKP3dnmB6cdm9jlNgAsWNLpSykmA==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + regexp.prototype.flags: 1.5.0 + side-channel: 1.0.4 + dev: true + + /string.prototype.trim@1.2.7: + resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + dev: true + + /string.prototype.trimend@1.0.6: + resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + dev: true + + /string.prototype.trimstart@1.0.6: + resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + dev: true + + /stringify-object@3.3.0: + resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} + engines: {node: '>=4'} + dependencies: + get-own-enumerable-property-symbols: 3.0.2 + is-obj: 1.0.1 + is-regexp: 1.0.0 + dev: true + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + dev: true + + /strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + dependencies: + ansi-regex: 6.0.1 + dev: true + + /strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + dev: true + + /strip-comments@2.0.1: + resolution: {integrity: sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==} + engines: {node: '>=10'} + dev: true + + /strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + dev: true + + /strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + dev: true + + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: true + + /strip-literal@1.3.0: + resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} + dependencies: + acorn: 8.10.0 + dev: true + + /stylis@4.3.0: + resolution: {integrity: sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ==} + dev: false + + /subsrt-ts@2.1.2: + resolution: {integrity: sha512-45yNlK42Z0pz4lAaNYbR5P60M2jmHl+gfAaiJxDIXsXXqoE7TkDCzl/00HgWyZXKkdIU6s8FiNtRvrlOZb+5Qg==} + hasBin: true + dev: false + + /sucrase@3.34.0: + resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==} + engines: {node: '>=8'} + hasBin: true + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + commander: 4.1.1 + glob: 7.1.6 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + dev: true + + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: true + + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + dev: true + + /symbol-tree@3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + dev: true + + /synckit@0.8.6: + resolution: {integrity: sha512-laHF2savN6sMeHCjLRkheIU4wo3Zg9Ln5YOjOo7sZ5dVQW8yF5pPE5SIw1dsPhq3TRp1jisKRCdPhfs/1WMqDA==} + engines: {node: ^14.18.0 || >=16.0.0} + dependencies: + '@pkgr/utils': 2.4.2 + tslib: 2.6.2 + dev: true + + /tabbable@6.2.0: + resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} + dev: false + + /tailwind-scrollbar@3.0.5(tailwindcss@3.4.0): + resolution: {integrity: sha512-0ZwxTivevqq9BY9fRP9zDjHl7Tu+J5giBGbln+0O1R/7nHtBUKnjQcA1aTIhK7Oyjp6Uc/Dj6/dn8Dq58k5Uww==} + engines: {node: '>=12.13.0'} + peerDependencies: + tailwindcss: 3.x + dependencies: + tailwindcss: 3.4.0 + dev: true + + /tailwindcss-themer@4.0.0(tailwindcss@3.4.0): + resolution: {integrity: sha512-kngKDW+z36JtjvaNziX0aesO95r8f5+3FFdANVFDt1uzNHZsL6XLla1YDK6EBAYFqPichoPDbO4lrrTyB+UAbA==} + peerDependencies: + tailwindcss: ^3.1.0 + dependencies: + color: 4.2.3 + just-unique: 4.2.0 + lodash.merge: 4.6.2 + lodash.mergewith: 4.6.2 + tailwindcss: 3.4.0 + dev: true + + /tailwindcss@3.4.0: + resolution: {integrity: sha512-VigzymniH77knD1dryXbyxR+ePHihHociZbXnLZHUyzf2MMs2ZVqlUrZ3FvpXP8pno9JzmILt1sZPD19M3IxtA==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.5.3 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.1 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.19.3 + lilconfig: 2.1.0 + micromatch: 4.0.5 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.0.0 + postcss: 8.4.32 + postcss-import: 15.1.0(postcss@8.4.32) + postcss-js: 4.0.1(postcss@8.4.32) + postcss-load-config: 4.0.1(postcss@8.4.32) + postcss-nested: 6.0.1(postcss@8.4.32) + postcss-selector-parser: 6.0.13 + resolve: 1.22.4 + sucrase: 3.34.0 + transitivePeerDependencies: + - ts-node + dev: true + + /tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + dev: true + + /temp-dir@2.0.0: + resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} + engines: {node: '>=8'} + dev: true + + /tempy@0.6.0: + resolution: {integrity: sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==} + engines: {node: '>=10'} + dependencies: + is-stream: 2.0.1 + temp-dir: 2.0.0 + type-fest: 0.16.0 + unique-string: 2.0.0 + dev: true + + /terser@5.19.3: + resolution: {integrity: sha512-pQzJ9UJzM0IgmT4FAtYI6+VqFf0lj/to58AV0Xfgg0Up37RyPG7Al+1cepC6/BVuAxR9oNb41/DL4DEoHJvTdg==} + engines: {node: '>=10'} + hasBin: true + dependencies: + '@jridgewell/source-map': 0.3.5 + acorn: 8.11.2 + commander: 2.20.3 + source-map-support: 0.5.21 + dev: true + + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: true + + /thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + dependencies: + thenify: 3.3.1 + dev: true + + /thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + dependencies: + any-promise: 1.3.0 + dev: true + + /throttle-debounce@3.0.1: + resolution: {integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==} + engines: {node: '>=10'} + dev: false + + /tiny-invariant@1.3.1: + resolution: {integrity: sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==} + dev: true + + /tinybench@2.5.1: + resolution: {integrity: sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==} + dev: true + + /tinypool@0.8.1: + resolution: {integrity: sha512-zBTCK0cCgRROxvs9c0CGK838sPkeokNGdQVUUwHAbynHFlmyJYj825f/oRs528HaIJ97lo0pLIlDUzwN+IorWg==} + engines: {node: '>=14.0.0'} + dev: true + + /tinyspy@2.2.0: + resolution: {integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==} + engines: {node: '>=14.0.0'} + dev: true + + /titleize@3.0.0: + resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} + engines: {node: '>=12'} + dev: true + + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + + /toggle-selection@1.0.6: + resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} + dev: false + + /tough-cookie@4.1.3: + resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} + engines: {node: '>=6'} + dependencies: + psl: 1.9.0 + punycode: 2.3.0 + universalify: 0.2.0 + url-parse: 1.5.10 + dev: true + + /tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + dev: false + + /tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + dependencies: + punycode: 2.3.1 + dev: true + + /tr46@5.0.0: + resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} + engines: {node: '>=18'} + dependencies: + punycode: 2.3.1 + dev: true + + /ts-api-utils@1.0.3(typescript@5.3.3): + resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} + engines: {node: '>=16.13.0'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 5.3.3 + dev: true + + /ts-easing@0.2.0: + resolution: {integrity: sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==} + dev: false + + /ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + dev: true + + /tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + dev: true + + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + dev: true + + /type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + dev: true + + /type-fest@0.16.0: + resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==} + engines: {node: '>=10'} + dev: true + + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: true + + /type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + dev: true + + /type-fest@4.8.3: + resolution: {integrity: sha512-//BaTm14Q/gHBn09xlnKNqfI8t6bmdzx2DXYfPBNofN0WUybCEUDcbCWcTa0oF09lzLjZgPphXAsvRiMK0V6Bw==} + engines: {node: '>=16'} + dev: true + + /typed-array-buffer@1.0.0: + resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-length@1.0.0: + resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-offset@1.0.0: + resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-length@1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + is-typed-array: 1.1.12 + dev: true + + /typescript@4.9.5: + resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} + engines: {node: '>=4.2.0'} + hasBin: true + dev: false + + /typescript@5.3.3: + resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} + engines: {node: '>=14.17'} + hasBin: true + dev: true + + /ufo@1.3.0: + resolution: {integrity: sha512-bRn3CsoojyNStCZe0BG0Mt4Nr/4KF+rhFlnNXybgqt5pXHNFRlqinSoQaTrGyzE4X8aHplSb+TorH+COin9Yxw==} + + /uglify-js@3.17.4: + resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} + engines: {node: '>=0.8.0'} + hasBin: true + requiresBuild: true + dev: true + optional: true + + /unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + dependencies: + call-bind: 1.0.2 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + dev: true + + /undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + + /unicode-canonical-property-names-ecmascript@2.0.0: + resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} + engines: {node: '>=4'} + dev: true + + /unicode-match-property-ecmascript@2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} + dependencies: + unicode-canonical-property-names-ecmascript: 2.0.0 + unicode-property-aliases-ecmascript: 2.1.0 + dev: true + + /unicode-match-property-value-ecmascript@2.1.0: + resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} + engines: {node: '>=4'} + dev: true + + /unicode-property-aliases-ecmascript@2.1.0: + resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} + engines: {node: '>=4'} + dev: true + + /unique-string@2.0.0: + resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} + engines: {node: '>=8'} + dependencies: + crypto-random-string: 2.0.0 + dev: true + + /universalify@0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} + dev: true + + /universalify@2.0.0: + resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} + engines: {node: '>= 10.0.0'} + dev: true + + /unpacker@1.0.1: + resolution: {integrity: sha512-0HTljwp8+JBdITpoHcK1LWi7X9U2BspUmWv78UWZh7NshYhbh1nec8baY/iSbe2OQTZ2bhAtVdnr6/BTD0DKVg==} + dev: false + + /unplugin@1.5.1: + resolution: {integrity: sha512-0QkvG13z6RD+1L1FoibQqnvTwVBXvS4XSPwAyinVgoOCl2jAgwzdUKmEj05o4Lt8xwQI85Hb6mSyYkcAGwZPew==} + dependencies: + acorn: 8.11.2 + chokidar: 3.5.3 + webpack-sources: 3.2.3 + webpack-virtual-modules: 0.6.1 + dev: false + + /untildify@4.0.0: + resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} + engines: {node: '>=8'} + dev: true + + /upath@1.2.0: + resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} + engines: {node: '>=4'} + dev: true + + /update-browserslist-db@1.0.11(browserslist@4.21.10): + resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.21.10 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + + /update-browserslist-db@1.0.13(browserslist@4.22.2): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.22.2 + escalade: 3.1.1 + picocolors: 1.0.0 + + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.3.0 + dev: true + + /url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + dependencies: + querystringify: 2.2.0 + requires-port: 1.0.0 + dev: true + + /use-sync-external-store@1.2.0(react@18.2.0): + resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.2.0 + dev: false + + /util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + dev: true + + /vite-node@1.1.0(@types/node@20.10.5): + resolution: {integrity: sha512-jV48DDUxGLEBdHCQvxL1mEh7+naVy+nhUUUaPAZLd3FJgXuxQiewHcfeZebbJ6onDqNGkP4r3MhQ342PRlG81Q==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + dependencies: + cac: 6.7.14 + debug: 4.3.4 + pathe: 1.1.1 + picocolors: 1.0.0 + vite: 5.0.12(@types/node@20.10.5) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + + /vite-plugin-checker@0.6.2(eslint@8.56.0)(typescript@5.3.3)(vite@5.0.12): + resolution: {integrity: sha512-YvvvQ+IjY09BX7Ab+1pjxkELQsBd4rPhWNw8WLBeFVxu/E7O+n6VYAqNsKdK/a2luFlX/sMpoWdGFfg4HvwdJQ==} + engines: {node: '>=14.16'} + peerDependencies: + eslint: '>=7' + meow: ^9.0.0 + optionator: ^0.9.1 + stylelint: '>=13' + typescript: '*' + vite: '>=2.0.0' + vls: '*' + vti: '*' + vue-tsc: '>=1.3.9' + peerDependenciesMeta: + eslint: + optional: true + meow: + optional: true + optionator: + optional: true + stylelint: + optional: true + typescript: + optional: true + vls: + optional: true + vti: + optional: true + vue-tsc: + optional: true + dependencies: + '@babel/code-frame': 7.22.13 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + chokidar: 3.5.3 + commander: 8.3.0 + eslint: 8.56.0 + fast-glob: 3.3.1 + fs-extra: 11.1.1 + lodash.debounce: 4.0.8 + lodash.pick: 4.4.0 + npm-run-path: 4.0.1 + semver: 7.5.4 + strip-ansi: 6.0.1 + tiny-invariant: 1.3.1 + typescript: 5.3.3 + vite: 5.0.12(@types/node@20.10.5) + vscode-languageclient: 7.0.0 + vscode-languageserver: 7.0.0 + vscode-languageserver-textdocument: 1.0.8 + vscode-uri: 3.0.7 + dev: true + + /vite-plugin-package-version@1.1.0(vite@5.0.12): + resolution: {integrity: sha512-TPoFZXNanzcaKCIrC3e2L/TVRkkRLB6l4RPN/S7KbG7rWfyLcCEGsnXvxn6qR7fyZwXalnnSN/I9d6pSFjHpEA==} + peerDependencies: + vite: '>=2.0.0-beta.69' + dependencies: + vite: 5.0.12(@types/node@20.10.5) + dev: true + + /vite-plugin-pwa@0.17.4(vite@5.0.12)(workbox-build@7.0.0)(workbox-window@7.0.0): + resolution: {integrity: sha512-j9iiyinFOYyof4Zk3Q+DtmYyDVBDAi6PuMGNGq6uGI0pw7E+LNm9e+nQ2ep9obMP/kjdWwzilqUrlfVRj9OobA==} + engines: {node: '>=16.0.0'} + peerDependencies: + vite: ^3.1.0 || ^4.0.0 || ^5.0.0 + workbox-build: ^7.0.0 + workbox-window: ^7.0.0 + dependencies: + debug: 4.3.4 + fast-glob: 3.3.2 + pretty-bytes: 6.1.1 + vite: 5.0.12(@types/node@20.10.5) + workbox-build: 7.0.0 + workbox-window: 7.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /vite-plugin-static-copy@1.0.0(vite@5.0.12): + resolution: {integrity: sha512-kMlrB3WDtC5GzFedNIPkpjnOAr8M11PfWOiUaONrUZ3AqogTsOmIhTt6w7Fh311wl8pN81ld7sfuOEogFJ9N8A==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + vite: ^5.0.0 + dependencies: + chokidar: 3.5.3 + fast-glob: 3.3.1 + fs-extra: 11.1.1 + picocolors: 1.0.0 + vite: 5.0.12(@types/node@20.10.5) + dev: true + + /vite@5.0.12(@types/node@20.10.5): + resolution: {integrity: sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 20.10.5 + esbuild: 0.19.10 + postcss: 8.4.32 + rollup: /@rollup/wasm-node@4.12.0 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /vitest@1.1.0(@types/node@20.10.5)(jsdom@23.0.1): + resolution: {integrity: sha512-oDFiCrw7dd3Jf06HoMtSRARivvyjHJaTxikFxuqJjO76U436PqlVw1uLn7a8OSPrhSfMGVaRakKpA2lePdw79A==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': ^1.0.0 + '@vitest/ui': ^1.0.0 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + dependencies: + '@types/node': 20.10.5 + '@vitest/expect': 1.1.0 + '@vitest/runner': 1.1.0 + '@vitest/snapshot': 1.1.0 + '@vitest/spy': 1.1.0 + '@vitest/utils': 1.1.0 + acorn-walk: 8.3.1 + cac: 6.7.14 + chai: 4.3.10 + debug: 4.3.4 + execa: 8.0.1 + jsdom: 23.0.1 + local-pkg: 0.5.0 + magic-string: 0.30.5 + pathe: 1.1.1 + picocolors: 1.0.0 + std-env: 3.7.0 + strip-literal: 1.3.0 + tinybench: 2.5.1 + tinypool: 0.8.1 + vite: 5.0.12(@types/node@20.10.5) + vite-node: 1.1.0(@types/node@20.10.5) + why-is-node-running: 2.2.2 + transitivePeerDependencies: + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + + /void-elements@3.1.0: + resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==} + engines: {node: '>=0.10.0'} + dev: false + + /vscode-jsonrpc@6.0.0: + resolution: {integrity: sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==} + engines: {node: '>=8.0.0 || >=10.0.0'} + dev: true + + /vscode-languageclient@7.0.0: + resolution: {integrity: sha512-P9AXdAPlsCgslpP9pRxYPqkNYV7Xq8300/aZDpO35j1fJm/ncize8iGswzYlcvFw5DQUx4eVk+KvfXdL0rehNg==} + engines: {vscode: ^1.52.0} + dependencies: + minimatch: 3.1.2 + semver: 7.5.4 + vscode-languageserver-protocol: 3.16.0 + dev: true + + /vscode-languageserver-protocol@3.16.0: + resolution: {integrity: sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A==} + dependencies: + vscode-jsonrpc: 6.0.0 + vscode-languageserver-types: 3.16.0 + dev: true + + /vscode-languageserver-textdocument@1.0.8: + resolution: {integrity: sha512-1bonkGqQs5/fxGT5UchTgjGVnfysL0O8v1AYMBjqTbWQTFn721zaPGDYFkOKtfDgFiSgXM3KwaG3FMGfW4Ed9Q==} + dev: true + + /vscode-languageserver-types@3.16.0: + resolution: {integrity: sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==} + dev: true + + /vscode-languageserver@7.0.0: + resolution: {integrity: sha512-60HTx5ID+fLRcgdHfmz0LDZAXYEV68fzwG0JWwEPBode9NuMYTIxuYXPg4ngO8i8+Ou0lM7y6GzaYWbiDL0drw==} + hasBin: true + dependencies: + vscode-languageserver-protocol: 3.16.0 + dev: true + + /vscode-uri@3.0.7: + resolution: {integrity: sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA==} + dev: true + + /w3c-xmlserializer@5.0.0: + resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} + engines: {node: '>=18'} + dependencies: + xml-name-validator: 5.0.0 + dev: true + + /webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + dev: false + + /webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + dev: true + + /webidl-conversions@7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} + dev: true + + /webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + dev: false + + /webpack-virtual-modules@0.6.1: + resolution: {integrity: sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==} + dev: false + + /whatwg-encoding@3.1.1: + resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} + engines: {node: '>=18'} + dependencies: + iconv-lite: 0.6.3 + dev: true + + /whatwg-mimetype@4.0.0: + resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} + engines: {node: '>=18'} + dev: true + + /whatwg-url@14.0.0: + resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==} + engines: {node: '>=18'} + dependencies: + tr46: 5.0.0 + webidl-conversions: 7.0.0 + dev: true + + /whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + dev: false + + /whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + dependencies: + lodash.sortby: 4.7.0 + tr46: 1.0.1 + webidl-conversions: 4.0.2 + dev: true + + /which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + dev: true + + /which-builtin-type@1.1.3: + resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} + engines: {node: '>= 0.4'} + dependencies: + function.prototype.name: 1.1.6 + has-tostringtag: 1.0.0 + is-async-function: 2.0.0 + is-date-object: 1.0.5 + is-finalizationregistry: 1.0.2 + is-generator-function: 1.0.10 + is-regex: 1.1.4 + is-weakref: 1.0.2 + isarray: 2.0.5 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.1 + which-typed-array: 1.1.11 + dev: true + + /which-collection@1.0.1: + resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + dependencies: + is-map: 2.0.2 + is-set: 2.0.2 + is-weakmap: 2.0.1 + is-weakset: 2.0.2 + dev: true + + /which-typed-array@1.1.11: + resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + dev: true + + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /why-is-node-running@2.2.2: + resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} + engines: {node: '>=8'} + hasBin: true + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + dev: true + + /wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + dev: true + + /workbox-background-sync@7.0.0: + resolution: {integrity: sha512-S+m1+84gjdueM+jIKZ+I0Lx0BDHkk5Nu6a3kTVxP4fdj3gKouRNmhO8H290ybnJTOPfBDtTMXSQA/QLTvr7PeA==} + dependencies: + idb: 7.1.1 + workbox-core: 7.0.0 + dev: true + + /workbox-broadcast-update@7.0.0: + resolution: {integrity: sha512-oUuh4jzZrLySOo0tC0WoKiSg90bVAcnE98uW7F8GFiSOXnhogfNDGZelPJa+6KpGBO5+Qelv04Hqx2UD+BJqNQ==} + dependencies: + workbox-core: 7.0.0 + dev: true + + /workbox-build@7.0.0: + resolution: {integrity: sha512-CttE7WCYW9sZC+nUYhQg3WzzGPr4IHmrPnjKiu3AMXsiNQKx+l4hHl63WTrnicLmKEKHScWDH8xsGBdrYgtBzg==} + engines: {node: '>=16.0.0'} + dependencies: + '@apideck/better-ajv-errors': 0.3.6(ajv@8.12.0) + '@babel/core': 7.23.6 + '@babel/preset-env': 7.23.6(@babel/core@7.23.6) + '@babel/runtime': 7.23.6 + '@rollup/plugin-babel': 5.3.1(@babel/core@7.23.6)(@rollup/wasm-node@4.12.0) + '@rollup/plugin-node-resolve': 11.2.1(@rollup/wasm-node@4.12.0) + '@rollup/plugin-replace': 2.4.2(@rollup/wasm-node@4.12.0) + '@surma/rollup-plugin-off-main-thread': 2.2.3 + ajv: 8.12.0 + common-tags: 1.8.2 + fast-json-stable-stringify: 2.1.0 + fs-extra: 9.1.0 + glob: 7.2.3 + lodash: 4.17.21 + pretty-bytes: 5.6.0 + rollup: /@rollup/wasm-node@4.12.0 + rollup-plugin-terser: 7.0.2(@rollup/wasm-node@4.12.0) + source-map: 0.8.0-beta.0 + stringify-object: 3.3.0 + strip-comments: 2.0.1 + tempy: 0.6.0 + upath: 1.2.0 + workbox-background-sync: 7.0.0 + workbox-broadcast-update: 7.0.0 + workbox-cacheable-response: 7.0.0 + workbox-core: 7.0.0 + workbox-expiration: 7.0.0 + workbox-google-analytics: 7.0.0 + workbox-navigation-preload: 7.0.0 + workbox-precaching: 7.0.0 + workbox-range-requests: 7.0.0 + workbox-recipes: 7.0.0 + workbox-routing: 7.0.0 + workbox-strategies: 7.0.0 + workbox-streams: 7.0.0 + workbox-sw: 7.0.0 + workbox-window: 7.0.0 + transitivePeerDependencies: + - '@types/babel__core' + - supports-color + dev: true + + /workbox-cacheable-response@7.0.0: + resolution: {integrity: sha512-0lrtyGHn/LH8kKAJVOQfSu3/80WDc9Ma8ng0p2i/5HuUndGttH+mGMSvOskjOdFImLs2XZIimErp7tSOPmu/6g==} + dependencies: + workbox-core: 7.0.0 + dev: true + + /workbox-core@7.0.0: + resolution: {integrity: sha512-81JkAAZtfVP8darBpfRTovHg8DGAVrKFgHpOArZbdFd78VqHr5Iw65f2guwjE2NlCFbPFDoez3D3/6ZvhI/rwQ==} + dev: true + + /workbox-expiration@7.0.0: + resolution: {integrity: sha512-MLK+fogW+pC3IWU9SFE+FRStvDVutwJMR5if1g7oBJx3qwmO69BNoJQVaMXq41R0gg3MzxVfwOGKx3i9P6sOLQ==} + dependencies: + idb: 7.1.1 + workbox-core: 7.0.0 + dev: true + + /workbox-google-analytics@7.0.0: + resolution: {integrity: sha512-MEYM1JTn/qiC3DbpvP2BVhyIH+dV/5BjHk756u9VbwuAhu0QHyKscTnisQuz21lfRpOwiS9z4XdqeVAKol0bzg==} + dependencies: + workbox-background-sync: 7.0.0 + workbox-core: 7.0.0 + workbox-routing: 7.0.0 + workbox-strategies: 7.0.0 + dev: true + + /workbox-navigation-preload@7.0.0: + resolution: {integrity: sha512-juWCSrxo/fiMz3RsvDspeSLGmbgC0U9tKqcUPZBCf35s64wlaLXyn2KdHHXVQrb2cqF7I0Hc9siQalainmnXJA==} + dependencies: + workbox-core: 7.0.0 + dev: true + + /workbox-precaching@7.0.0: + resolution: {integrity: sha512-EC0vol623LJqTJo1mkhD9DZmMP604vHqni3EohhQVwhJlTgyKyOkMrZNy5/QHfOby+39xqC01gv4LjOm4HSfnA==} + dependencies: + workbox-core: 7.0.0 + workbox-routing: 7.0.0 + workbox-strategies: 7.0.0 + dev: true + + /workbox-range-requests@7.0.0: + resolution: {integrity: sha512-SxAzoVl9j/zRU9OT5+IQs7pbJBOUOlriB8Gn9YMvi38BNZRbM+RvkujHMo8FOe9IWrqqwYgDFBfv6sk76I1yaQ==} + dependencies: + workbox-core: 7.0.0 + dev: true + + /workbox-recipes@7.0.0: + resolution: {integrity: sha512-DntcK9wuG3rYQOONWC0PejxYYIDHyWWZB/ueTbOUDQgefaeIj1kJ7pdP3LZV2lfrj8XXXBWt+JDRSw1lLLOnww==} + dependencies: + workbox-cacheable-response: 7.0.0 + workbox-core: 7.0.0 + workbox-expiration: 7.0.0 + workbox-precaching: 7.0.0 + workbox-routing: 7.0.0 + workbox-strategies: 7.0.0 + dev: true + + /workbox-routing@7.0.0: + resolution: {integrity: sha512-8YxLr3xvqidnbVeGyRGkaV4YdlKkn5qZ1LfEePW3dq+ydE73hUUJJuLmGEykW3fMX8x8mNdL0XrWgotcuZjIvA==} + dependencies: + workbox-core: 7.0.0 + dev: true + + /workbox-strategies@7.0.0: + resolution: {integrity: sha512-dg3qJU7tR/Gcd/XXOOo7x9QoCI9nk74JopaJaYAQ+ugLi57gPsXycVdBnYbayVj34m6Y8ppPwIuecrzkpBVwbA==} + dependencies: + workbox-core: 7.0.0 + dev: true + + /workbox-streams@7.0.0: + resolution: {integrity: sha512-moVsh+5to//l6IERWceYKGiftc+prNnqOp2sgALJJFbnNVpTXzKISlTIsrWY+ogMqt+x1oMazIdHj25kBSq/HQ==} + dependencies: + workbox-core: 7.0.0 + workbox-routing: 7.0.0 + dev: true + + /workbox-sw@7.0.0: + resolution: {integrity: sha512-SWfEouQfjRiZ7GNABzHUKUyj8pCoe+RwjfOIajcx6J5mtgKkN+t8UToHnpaJL5UVVOf5YhJh+OHhbVNIHe+LVA==} + dev: true + + /workbox-window@7.0.0: + resolution: {integrity: sha512-j7P/bsAWE/a7sxqTzXo3P2ALb1reTfZdvVp6OJ/uLr/C2kZAMvjeWGm8V4htQhor7DOvYg0sSbFN2+flT5U0qA==} + dependencies: + '@types/trusted-types': 2.0.3 + workbox-core: 7.0.0 + dev: true + + /wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + dev: true + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: true + + /ws@8.15.1: + resolution: {integrity: sha512-W5OZiCjXEmk0yZ66ZN82beM5Sz7l7coYxpRkzS+p9PP+ToQry8szKh+61eNktr7EA9DOwvFGhfC605jDHbP6QQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: true + + /xml-name-validator@5.0.0: + resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} + engines: {node: '>=18'} + dev: true + + /xmlchars@2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + dev: true + + /y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + dev: true + + /yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + /yaml@2.3.2: + resolution: {integrity: sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==} + engines: {node: '>= 14'} + dev: true + + /yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + dev: true + + /yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + dependencies: + cliui: 8.0.1 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + dev: true + + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true + + /yocto-queue@1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + engines: {node: '>=12.20'} + dev: true + + /zustand@4.4.7(@types/react@18.2.45)(immer@10.0.3)(react@18.2.0): + resolution: {integrity: sha512-QFJWJMdlETcI69paJwhSMJz7PPWjVP8Sjhclxmxmxv/RYI7ZOvR5BHX+ktH0we9gTWQMxcne8q1OY8xxz604gw==} + engines: {node: '>=12.7.0'} + peerDependencies: + '@types/react': '>=16.8' + immer: '>=9.0' + react: '>=16.8' + peerDependenciesMeta: + '@types/react': + optional: true + immer: + optional: true + react: + optional: true + dependencies: + '@types/react': 18.2.45 + immer: 10.0.3 + react: 18.2.0 + use-sync-external-store: 1.2.0(react@18.2.0) + dev: false diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 00000000..33ad091d --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/prettierrc.js b/prettierrc.js new file mode 100644 index 00000000..0af34d8e --- /dev/null +++ b/prettierrc.js @@ -0,0 +1,4 @@ +module.exports = { + trailingComma: "all", + singleQuote: true +}; diff --git a/public/_headers b/public/_headers new file mode 100644 index 00000000..0f4e3f29 --- /dev/null +++ b/public/_headers @@ -0,0 +1,13 @@ +/* + X-Frame-Options: DENY + X-XSS-Protection: 1; mode=block + X-Content-Type-Options: nosniff + Referrer-Policy: origin-when-cross-origin + Cache-Control: public, max-age=0, s-maxage=0, must-revalidate + +/manifest.webmanifest + Content-Type: application/manifest+json + +# assets get a long cache instead of no cache +/assets/* + Cache-Control: public, max-age=31536000, s-maxage=31536000, immutable diff --git a/public/_redirects b/public/_redirects new file mode 100644 index 00000000..ee9870cf --- /dev/null +++ b/public/_redirects @@ -0,0 +1,2 @@ +/assets/* /assets/:splat 200 +/* /index.html 200 diff --git a/public/android-chrome-192x192.png b/public/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..f71a051421b153e30c9b4f6ddd2c9196ee8c95d8 GIT binary patch literal 6970 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 literal 0 HcmV?d00001 diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f45b8fd430e81e5e472b9ffe51a16ef4a395128a GIT binary patch literal 6296 zcmZ`-cT^L>w+@|vAieh@y@g&P5Ly6%5IRVcj&wptK@9>*CxD>}1~Cc((gdW6^iJr# z7o`YN1%2`N-aqf1^Uj{#IXgRZXLk4A?|%17gc<8mQLs?}001g|s5Ttm*8V%mN%2?k z5Ge@X5PN7EX#xP%sg&2wB=~zC7bx5a0EoN;0K_5zfGd1g><$1BA`JlSIROAFuK)n% zfcz#?HT(n82ZnmufWQBa*DYn4_#QHZzL5^uCK(koHLFNA!!~}fvc9&adHCFZK|}z@ zWI>O5r5=AOW=y6@&@Ln7s5`QD7c%O`1X===z?-VdqIit`fCK|{^57U$HVQ)xt@ zHFb7&%_K9t0$86C7_Q1C=#(O-?l z!s$1uF$a$i=i7v&_1!i_)8MZYy?MJ7R&1TXFwzae-B|at5i{Y=(I*2MiUHIYu+GOA zHDRJ!awBNvISQ)|9SqU1m=wjJsFBtpG-13KYA`bK>MJ|gOfKz8EpnM}lM*_cKttef z__bVUNEl&pDvA)Hfmo7vO~*FNy#JXW17vui#3%Fq>@McI5mjR3nUTG<`z`d|xw@E` z)sqx0&jkS*buvG)AQ(uDiHpFMNR@U?1*s-QH2(eP#=w%pUkfrvL4@0+s74d=Etm%x zPWMhTvAl|lK%6mQ5t1O2#vL9+*&P-25p_jTOoi5`&%LliUZ^Iuu~O*prKhY!@5rv%aXMxTcpz$1D@7YnX+=208t}htNLBz(ycUr zlBk#!Z^-Vb+dQ{3bmQ{e}$f>rkP z3HGt`dt<^3GHayOhC~XsV7fRyV;@}Xre!LmIDvjZ{&oAFsW3xeiN@FP3GL!4B1tMn zDvKGi_((FCvlwcW!mb!;IYS{>+i59W%vcWrR#Y(>c*a%0AYwjobhiJ7P$p@Y0I3pd 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 m-mbwejxMr+Sm + + + + + #120f1d + + + diff --git a/public/config.js b/public/config.js new file mode 100644 index 00000000..a97473f1 --- /dev/null +++ b/public/config.js @@ -0,0 +1,19 @@ +window.__CONFIG__ = { + // The URL for the CORS proxy, the URL must NOT end with a slash! + VITE_CORS_PROXY_URL: "https://flixweb-proxy.netlify.app", + + // The READ API key to access TMDB + VITE_TMDB_READ_API_KEY: "eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJiZmU0OGY4NjFkY2NmMjczMzUyMDdmMWVjYmVkNjNjNiIsInN1YiI6IjY1YjNmMWI0NTk0Yzk0MDE2MzNkZDBjNSIsInNjb3BlcyI6WyJhcGlfcmVhZCJdLCJ2ZXJzaW9uIjoxfQ.GiCKswc2u9NraBbujm0ykI5G3p-K9WJoHg40jYbFv4o", + + // The DMCA email displayed in the footer, null to hide the DMCA link + VITE_DMCA_EMAIL: null, + + // Whether to disable hash-based routing, leave this as false if you don't know what this is + VITE_NORMAL_ROUTER: false, + + // The backend URL to communicate with, defaults to the movie-web hosted one at backend.movie-web.app + VITE_BACKEND_URL: null, + + // A comma separated list of disallowed IDs in the case of a DMCA claim - in the format "series-" and "movie-" + VITE_DISALLOWED_IDS: "" +}; diff --git a/public/favicon-16x16.png b/public/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..56d0a43b2308cb48a7f6bcf050c2ef44f52c49bf GIT binary patch literal 637 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>*WsYX5&y-OO_O)l|CXPB znBxHVCtpLL^HfV*BT7;dOH!?pi&B9UgOP!ep{{|suAy;=k+GGbiItJ5wt<0_fkCwe z=V=rTx%nxXX_dG&aHVc62Wkkf3W+EQN-S3>D9TUE%t=)!sVqoU$Sf#HW?-n8^Y{}F zM`4(T#wq{PXFQ(m_pwD+_y17GV}vaA`0(oWiWUIYi;~jVmXPoH-(Mg#C1b d#{w@shF9W(C7+y3rvj~D@O1TaS?83{1ORb8-^~C3 literal 0 HcmV?d00001 diff --git a/public/favicon-32x32.png b/public/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..ef644cbb45f7a325318a95ae69177911948321c6 GIT binary patch literal 935 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 NY)t;^jt7xG{}09Cm7)Lu literal 0 HcmV?d00001 diff --git a/public/flags/galicia.svg b/public/flags/galicia.svg new file mode 100644 index 00000000..2eb27952 --- /dev/null +++ b/public/flags/galicia.svg @@ -0,0 +1,199 @@ + + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/skull.svg b/public/flags/skull.svg new file mode 100644 index 00000000..02c4741b --- /dev/null +++ b/public/flags/skull.svg @@ -0,0 +1 @@ + diff --git a/public/flags/tokiPona.svg b/public/flags/tokiPona.svg new file mode 100644 index 00000000..d0bea782 --- /dev/null +++ b/public/flags/tokiPona.svg @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + diff --git a/public/flixico.jpg b/public/flixico.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ef5127cc3f3abdd20d82381080e7123d4768bcce GIT binary patch literal 6984 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 literal 0 HcmV?d00001 diff --git a/public/lightbar-images/fishie.png b/public/lightbar-images/fishie.png new file mode 100644 index 0000000000000000000000000000000000000000..8c528ba4e6948ae5a6b68a752a6e7207fbaa1e81 GIT binary patch literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^Qb5eZ!3HF2j;{3pQk(@Ik;M!Q+`=Ht$S`Y;1W=H% zILO_JVcj{Imp~3nx}&cn1H;CC?mvmFK>m487srqa#=TP-d7BIbT-P6ClxP$zV7hxi zw1nv~%LdLh57?|2a~PyA@SdyJoK@w;+xlVhbhWp4|C;T+HbKZ(UBWMc-)KVBY2FtH zc<=NY%Cf3#6-fS?!sRt@S7y zchQ6kHlB69jaJe{;`>{gW{WC&YkTxaMY(;Oe{trs`CgyOA4v5iUB9P$+;f-D_VU%c z`$8O!UJm*6qgl5``SWRk!;CT~Ywc%lzcX?7W%d>O_Dye?_d#rC5%bo4`+;6#@O1Ta JS?83{1OTtOc@qEt literal 0 HcmV?d00001 diff --git a/public/lightbar-images/santa.png b/public/lightbar-images/santa.png new file mode 100644 index 0000000000000000000000000000000000000000..fd799ee2479b51041f61c14fb40f85c61983f01e GIT binary patch literal 94675 zcmZ^~Ra9KT)-{R;r-1;Cy9I5W;O@cQ-91>44(=M9;2PZB-Q6`f!QG)R=bZ0>m3H$&eRNhWz8EG*PJYAnC!6W)l+Q$b--^@{-D{69;KQb~j-@P;M) zQKF-osio#MTiuSc3&m%v0F|fJT4_^pq`@Hp;h+P^5Oe$omw`V>47>cQLdM(scr7nF zk|A0z76QY`(@;o&=uVU?10gkYb&Jh*%d>{AJ2VrE-zR#9&(ur0{ur5tA+Ek()p)w# z4!xpDnoshE;*69lew&HN~b1kwA*YMFF%c>JHNbnO%RPy8dB@cn=CWc_mL zKk<*^A^%tHEBEVv;~!PGvp>@RqXO;!RQ*5s|F6>UED4IY3-$lB%~cf$EoC3q=^M^H zPTkqQO*l7734Z9iOYfuTJOJ=4dG-FMMR&IKr<@alS%xwHYvEm*@)@Tp(%+@eQRsnD9T zz)T?{Ra_=a-FnX^j;&CAETO+(gu*62T?Y8&LDrHZ>Gd<&z$AoDPRaDrrgiDjSA%(-Zx^PT|8foopg4vy%$yS%)eyt3V2%7L{_Y3 z7!==~Io58w3PE0#{;xTTg%+!+hCe)K92{Mny%-D6fnA3~NJ96oifxCx7J1?6Z1vylMi!L7Xbr{!noG~^Q9t;0e zS*)SCx83Oh<-@t5Ntp_W21P?@Y;GALd`SCFBP#Sn!f)SiwX>j5VCQ(pc{GDoWsb@4 zDtPH$!SL<+d56z{r0admV8!=nSCM(^z41ou$N$Ffd+5UZ1mx2Gx<=8*)$^pzaKi90 zLsfu(wxI6vvSx#*Qmh2W_W;IMZPiZz0qtwfnE}TpRQtQq(x)=5&Y_Sv>;#Gi#=X?# zJ^!^eU9Jo?Th@?#kgbHcmS`bT)IfD)yuDm`sK8YZ{7GvqktGSgXR=zNMrqMhdxKsy#3WzC$D%b}a!_G$a-Md`uMe>YE)x>Fz?m-|`Tk3iQUQlpQd4zt< zk+TFShNID%40yVfR(4ib-oQG5iiwN7<_r~GPR}NB+wyOvH^r~#tY&yj`BtFsX6jY? z$t@dV`tg_sdsmlrqCqa#i$(d;K9`W!$tAei%_uYnD*bp_b zfiI6i`vWB`_}!cNX?dt>(Z@&b$G`om$|}Lv=ln`TE>5r9MNV1NQ%8?PazIFYBOhCV z{{q2RL)UrP@aj?uXfErVg{0LlY5n^LBzRQrC*vZ76Q~N%Hl|VjtH|US;!_`FBKd~`QzfEKQ`NKmNzqP{y)7i_N0WeG7f(K}C z?WXPEzYB*Vtepi;^A1mf*nFyHIO!9|d2trsHCPB}Q7j0pW*Tl<#?5s(wx z^kAWO*D7fSE3NxWl4VPOImqts@o_{C0v4uMH7KjCs&7}nLUXF&daZM{QRqeXZr2l2rsLCM+zuEJa`om?BOtW*-;R9yQW10zxOpg3RLV$ZaX1{~nqIQ_9tx>1Z8>%ekl(4~i1gwnQHd&H zAQKuYY#2=J=0(}ucu`UDX^rL-HtigE%7JkWgpkB|daOBkH-qMNJtwaVXfE{SI7AR^ z>U$p;l24`y4ooq8t~-nM+4W$`e!*E<%Xa+bR5{iCRW5((uFNzC{3?A4OS)e006x7r zei6J@IKg;7x`+|F-(+D9&4~OGS-#}0V_UA=!fi&vA~ont1*~7dD^7q(gQKq%I%kav z$wLmPp6^vbQAY`zme2hXf{7Rez*J9^CBuHxBpw9~JSzy7e>acMLsW-5>B5NPCC2(o zx*{wBLZ_P;7a9~U%%!ORJFQY^Tmge*3t!GAO)(^#%c>Cw1LCNKBOx|0Pm7iQ_Oo`y zj&3MW?{($G(&OO*yzANKE#F@?#T|FXpL9}%BC?Is( zI`Qy6e0coObyL>tcgHPfW9af0eu8JF?}C!VW45!Zlt}wxYnB;~*q~8lJr*aq=w?0& zOD~?q@6~JY5R_W7m{hyds60V{42L=Ilf~_Wi~+6owv<3Mj*6L^s-l!G%uXF7Tq|57 ziP9U9XH($7XpJ>YL-c1_s45i;Q7tG~k_zi5CnAB7jVQ?QnI>3_VJ|VPA|4gSpDtVm z%gQ(dLCI7$%@|l+l#>)`-8aC2MZfG63mh0^dC5EJyLi$U!r_E81ui!=RlV$Btnqbz zPnlbR+5WE^Vi==>W7CoIPuH#qoZ)k5=>2y6j?rcOy0_bO2EN{KoJ%oyF5f@6x}gv9 zR_9#WfDRG2jb11FLMBU(qN6D)Yn7c|Yz(WQy_5#r7<`+l9SX<=TDaput1IvsumB~G z-~BgliEG2j^N=yggStzjaSGu}-h|2EO1b1IB%;*Oq++5Fv4k6Y2aHBg8~G zn0LDyDmnaLI9XM_0@z@1bLje^RJ%Ur@-R6YeSc$|nGujio_xsvCFLP)FrHq)u6Fhs zmN~0M@oAaXie;0%UeB@U%JM0X&M%-s>BY5fv zHub(8CGC3thvB3Cb^&>=d!4w*NH!la7wGT%b;62(Qo*^xgo95rIA0AIVVbrn{DURm zvK(avh*|QUkFpuvw~&kIJwHGiYBVxoBv)O9K?ETxlfyfnN8;KzUW)`MUcbq45-3v) zL`~N`lrraiRd|d5?Jmaq3qxD@Q;YnGzy}0J@^tGo1G$6VTVjU3#=~`3>3GIU$**2Cc{uMnAC`Dw?Rp~YYhcf3i7qA2!CPQG*h z&mgn5keP=KQUl*d#buB7o9ytdo64q>Pg~im=OEV=<#fzB#4qztVcMqjC^%s?@j6Bk z*i29&;kLUJ=p3rE9M@*xF$ci}DgbOMX9Ul;t)1Z-5BIqVby#jWKvng zES~PIe@D)73u_dxUvhlRz|m=!&z~H-;T9WR-j33Z>-H5Ke_#h9+ILxIqF|8l|Ly6p zY$ifjToV{tqYWa9`|I*Tluo`$vSM!(g&j*GxR+*`MQ%^K80(u_O^orc3EUUD1ip&( zF?`y_01piu^1ooS8Th#Pj_GDc?RsWCPyNRMe})h7DqVIEsy|u78|u2$@6zsi^M1!% z5qOTiJ2*&d&)#qDI=K3Q@})mf`($oJ=cL!=_Xuyk4n8%uX>b4VBJihKnvs96EE?<5 zU~46+h*H`5ae#zj3-iQMX)!$s9QMD+#gI~WfE3uEk2~jHR|FMWT}xRu)GD#tzz4>W zAXR}E@wC18X0UzV4-hjJ|I(M-q$l_{i#i0j+>|tQlC|V`4l49F*XAi_F9_QgkH#ce zZ-c-r5|k#fMxpizs~G9mG-A1!H1RosBWwQltwSAW;&bpD+=JUB z++qitbyG81_@OVS25&sPpLQ-FOgFE6q(0yOT*0dUr|$&#MQ9jYnv8AuYv^_+ zX1pZE1kKBO333w2NkdCjCTa&C3p(YLzzx5-zSrXsrYjxM@#w(4_GSW2NTi&g^II5g zC~=kdxy0>?Wiu&P0r{*QnZQcmIgj5x%DUVXH;IAmTfkWBYZ~}u=3wW#Drn*{TPw~Z zqJRHY5^`I`&UB;Kbvw&OJa(;t`84?NW$S_IY{>8R=A_N2*Wio4|3d+wO^+VmFkUrTx-AvqQj%F68=aA94%!{q^SCb@!0e)cHhg?RsZe-_*I^ z6?1v?S|s!z@7Ti4Yovwu!8;j1#PXZo)t^Oh6e+tQ^h~$0 zK#qmpJ`<)GY3Hbp#dSUT`_aqxkdR-Yqu)7qCFGI2)409Ui_#Ii1|A(4koubWFNN6m zFXLyv539ZD2in7VIz1kJde1sDeAR`-b-rFN=^b5LY`(c>GzRXOCqO{fV$oTJu)Jyv+3R>eU7l)0ml|OUC4}3%Mx6;zGl;%%s!2c$La#bzpz< zvZr&u71GzWdQ80WTq~hi80~m@uNJ$fh~S5Yco@sW!V=mgiJYzw7cncoYefN)+pdZ1{0s0S?PF0DcM?yrw$_5Ps4RMWOfEttP*zt>^rwV!!7y$Ig?Na{;f%5e`NPD&C6? zbQG2?{(hBRmtP}Hxo-Q@$Q5dNaErhV^;xnYd3}w5Zl0JZ`utK3Blal9hVM9My{+R` z4E2j)GadiR)Mb^Er<;*s#bg-^{kbF~;gFbHpGn(+Gy(V}|1zTkz(3oL>))sBoB(3f zwcO?i8aI>J;UAL}Z@1e?Yd9m^H*@98gTJX`>Lkl6X7?N^5U%_u9Jy6ss&$33ZJ&y0 zLqgy*73&2C|HHa#`B*Q9S$|ZR2$Pw=2n7fz19Nlr6O+uGK(=Dy0lOz<3@JC6@ z!QjUpQon=e5!%92y!*yHJY5nyX3y`-&UIbXBD zH%`A{Ny9oK>zUi~6rXeM>$f#wh6)moKlLda;YFFmsd+Lh_)NO@5pv$hv+9(c>YCN9 z0BnB3JTy79HXdWr!<&SZ^aJr1)O#!F=QwII@IIgo3ej%5vG|`#wy?JKI$EGwNdkrj zMl0LYpQX89;DXM+`zIz9$R2Z(p|O@Y<;Ek4sB2T6+L&@I7lbb&bKB>B7E%jM^>pzG z=sZ+s-nwpCe_szBF^-Q^Z1-t+58ZmcyQ^?~%sY#G@Qdx-C58kq-s)44&}3z0gG0-p zE_zlf51-dE5vCY3UEd(~_tBQc4;_aX*QAhOp-sQb%ICewc^J5QiA#eB6qu4kRD)GwNxr zBwf*m+m}}0o%@uEriQ+@`m%vOYt{KTYYr{i;k45DL@W?ZNa9QmV<_c>ku0G+ zs;Xn_Nh_8(uqfU*)rvRQoO(d|2zL;gd?+ZWpNrb2f~cIL(7A-cmZO%Srsc78FpSf1 zS~5tyS$Fg~h{b~o5$I7r0iTL#p;~Ml(v1uVvJ_w8*qzu7;f}$^YXrzQ`&|Cak(~{T zP!&A^riT1kqc2a?=uk$n8)U+p3*m2pC`P62UUe@l_%`nL*LLMjN>Nd(5$d3nqG9GP z!uZZGrq-p0$TuX-;+oleggCRK+2m+RwC>+P!w2b+!+BiuACE?pU`Fd5#FHbWt1rGW z;TelNkhrc{9FVoAHUXkD`Z)0}{5+;fpJxuoQv60P;!ZNEq*I=nnz%duDN@eG(gtK@ z7yJirt~!u(RNpgY=@5KB^7gZQUBQ4TcfPQIwSP>>&4rQ(QIX4@pVJC~a3<6ZOk6Sy(KVGcS6TAS-H zIT%@NP!4t2s~IDvfoLPR&>LpQn}=b`xMCW9HshgVt*hkXZ*y8{p8S59tKtYk9tWa0 zQ7Q$3I6N8f+LdVbDmBXTemSZV2}MzR(RbJ)wcNsNw)Z1Azm z{%z)~-S{RQu^#)-W8~o~S1YMx`j2b$q}5%uX|U#Ws`}>PT%;kQ5-BV{$rRMO_y{>6j>QJVn7*1jHxh|Ep!m z48Df#k1KrlhAiCF;`>#-vG{FuymA`8RQ(Ae#kguW68O*7URq`%UHfB8@YcU7V(Xpz zoeZ*J_%isT-A})D<&b7ngW<)64Ar5+bNwPdG1bw*dO~5uf=xAC+-NaPA~vXiBRCJO zLJDdS(9+pqE)9!)aGKFhuI;2#IH3iwQD|P}aZZrNPHw>*7PQ}O z$KJq8X+cR@%0Nvgfl?!aI`W5GBo5)rdjnpOHeA4Tx^uTDU2hMTY6U-H_)>HlH>de8 z%7*cv4O!xYl5ou&uGINa2}6zoJ{6X{wLT|* zq<^J+cOx&F?VwhHs`f6XF3OPUUjr-~ME-Jrc;FZVb4dI|J@roGr#YTSD%~WiaI%;uDd=!$Zjs16Kra5!zEiOp@t`>B&hH=W zCJ}IO|Ins9pBuOWaZ+Cr8vkb9NktJ4ni{cWX(aiR0|PaBTd`R4y6Mu!jLitx7EzTc zQ~Ai3bbQlRKa1v+qbMZ(##$vvSwpd8WJ0l!oP`@Y|Eq8WP@6mN za4Z)AB1R#iC=GNK<5-!b!tsPpJ!c#8eJ^aTwu3`}p_$EPf>%wTPcb(7CE1^o>SC2- z`sZ}4*FMARUD@0RGREKePWAGJ&D?9D1%9M-BxG0t8wT4+=qmuyQC`Aw`$^5yI;L_6L6p&o;=7INi%?S7 z5j_S`n&X89wqZVt9G8Vp(2l>x7YS-U!^Ekz)JvBnow>`ERZ@nLWB+oh+sZAKmM-~e zW1db^utjm;MN`;6FaSSR3oyAak*Jt&AgkEqU8-L^Km84U7h@Q=-{<=Bi=Zb;v#_Q( z06v*Y%N{)g>0CD`v`NjMz*x<=%pc`dn9gM04-xf%oLQOeD)Eup2o%qa7d4mc{cv7W zBTV#Zv&}nci5T`ed8tkt)@^v`a&ZYF-uW=zHHGK*-gMpdO6xd@v57y+yHw>=5oy0` zw523;=`W4>Qpl)=W);-Jl<0uQSQ^G_ zyKg4IxTD&Urd+|+FKzn)UlaiFcf(3*lY?ccF~W-w4(cb0f~i=8dI)nkMWYg1DL@oO zL>X|PM(>>Xj|C(_GL$$#t0)Ub@tA}8fq=3fS%1YZN)T@1 zKe_i1&h~$%bOuhZT2-)?Ol#HDsw^QZ;3J4JH6xBjm3`7Aij@j6zIIAJ3o*ayqaE=2+4gpmEMR26RwDz}>WiO;4Qp)-+AfimZ-Rl1ZAhDuF zwoL#>@cT8V0-~$_)JruI;3^MwnFkrhqYBIAO=%9L^?g?ei^b`Kor!pf9!`%j5sAje z_wPwk$l0SPMa?SNZ+?iQ_4{x#=&O6P?hB?7QPkm7cNatlOZQt@a0D#`QPYWR!+3g+ zuH(^_b6}r`_FD}q6AnSua3;6T%7btQKO=!^S6WS))%JI;6U?=n+gqn}EaZKaeN$uY znshzj?V}gT$qSXsJ~bw4ycSVGZNBQJ@W@0liYN=v$G{H2#40(k$`h__)-M>%bpRUm ze|ebDszaXLI0Y9Fx@z zK5LF{dbuCOQ+*pc6?(7g48Y5JVt*9?Pk|LiEwAQVwjsx%osS%eZfifHxJh4HSlSDs#yRIj<2JX%>R?D&xf82cG+Pw@DMc2)mC%ji~X+}KibgFA}K7sZxdhfE?02f6j z1^kp9nz#ZA<=pHh(JK_hNn-)jO=SB4h~!S3f^vvRs^p8Zwn;jgklxV#Qpw5un`JSx z4DS9!{2@%+2#rEUKR%}<2kH_dksnLfe>m@;ZpZ)ue5T(BmdSsIQK3}BaqG6lUh((V zmARM?28$#`z?(A%bJ8VKR;bA?;RThlN(qUM6CU4RlPF`Y*_$=3-ANKRuWsfi_O@z> zX4gt&%6mPhlJ({lavPla2{8j1=oXD=d!y{)i1d3;|dJt={f9%qxOz-BXd8PO`k`T%$m))k)47X|a3>{cTZ!rn*lp zKZp!8NqtuK!8d0R-Q+vBZIrG(p`9~FUrz^mu*Y$G{TpdjcX64Al)Xt1-l`&GPw4CG z2xP2lu*q+YduzS(R`2O?NL+RxB%ZjJWSNCQ@jyUv6%$F6!_(9C40_8X=(ANRV`H_B zD{~uSjbgZsY=h*0dc`W*XaZHSxUAVItQe}*o!yExQH{pT?C%%lm{de_hbpu;;pqR)ae@Hds{5jZASA>fE*d5kpG(>tb&6I%(=~O9(j=P() zn!OK|1j><&m3lXr!$k;<8Qm7;<*s`bSp}K8q)!IjMcG!2D#68qKuX76i`!QW&OW-V zjKQN`9Fd$&AzxJr6q3lQE{fU@+;|pgI6Nny*k-P+xet@Xf%hj2e3*Ou35@-@@ejb4 z%Z=qDwPOqCatq~#*_!m5{d)kC2V^PG06|861aGVX=RiYSy`{Z*FR%B^$EZ=1hcSxW z*~=}Mi9s%no=tTzO$BLxWP&|3`+0@sw?WI~S@4SxwxN%+hXd#^1X5<40IAPB@~%@X zOk_bKeQy!MhfD~)4E4r#zTC)~qkiHc;(zr9YpraoyX2#wN&EsZBV?yzBo#p??bHO2 z-`aLOUo-QRnddP`1uAAO5=Qp_#f4u4-VCQol}r>vG)8(R4s^?+`lMNnc_%%1d~m{e ze+`>qiZ&7E&=*CElVS5L!dIY;3;%6CwN^uvRSo40c&gaRVIaiHNNoP|iJ}^%7t1L0 zu1^sWhJ~!18BQ=G+_Fy?V5*6(X3L=}9%U5WQSoMv1sn`tOe9J$Jq1-G1$sksx_OR7 zH8c;~36ek?6L3#5&xRl}j)~eQEfOq3^r&u)nA~0tI;HSs%9ZI6FqHiec6WIu=68O& zRgv}K^DVU3#Qx=fb+S3#JXKVH!1dt}$f(5XmUC2)Aj$khtdZa9` z+;k#DwgsglFw%~im5a-6vu3oL zJ0YvB`wqz3V-+OLQD^fd3r|NkPkY}260~MMw7YP1sexWTL>$_O7HY1TW+|($y(XJ) zgcP9>V{hItIE(ii+Bk0Sz#ORVyZT+YyPF`)dtA;|OB>&WtbacEnov8-$ z^jMypaDrxoeSSwYWt}-^*zcLvBSxr%H)K_4ITl)2cE!;W44 zf7zf{L$BtSxu-}?#*$-8MbhVf(nCW?7sUTk^}TH_4FIIL+OkBDPl}Y9gkf`u&vO%hNLRFJ zCDuLvJJS?)CFrA1C^IHPC}njS#`J(g-2?Sk67Ci6qY;2m>HbWP2^hFo^Zt3>y8~k; zWtbKIdULGi&p>#M8-UvhI6KYzHM_`X>ewwdr=ZhY=1o8eB!t__^qrj=>lq>U1nQe- zF@A+wm$RCsEwrAD#r$v$a}e24UcV*=KV+Q{k$yHrhMDEOtJ-!5ytDb>+jYh32$}PF zKlFKB517P$ZxKxTRmyhM{)+JQ&jV7ntq8H~ip_rdhnI3qwM?5m9fQ)qc)CQ{bT*uq z)IdMKcaOO7pjD!NH-7-?3p=P}{zdx^+$wDsip?1- z`f3_T{DZ$WesB*+XP*;S;dwoK!^Zj7fZK}$?}Qd0e797r@pBZLXJ6oeFA;JBC66)G zq5YrPe~IH-pW7#Xl0@on$>H|q8WM$zacmYE5PMs{JT7yBqT@LO82!Vx z$-mQE9oFawCh@0){}W8+lzpo9%^6QgOa}QEkJP)gfU^zVPUDDa7p%grbkyL)8Iwqm zjt@qHN?tmJ$aLwr`MH6J-!El};QLah<6hkbay=U1;r|M9pD zbm6Vz^|r?bAG#het^$QF`JP<2u9EMzcR5N}J6jJ&b`@RNNmDDF>qp)6d3UP&fRv`= zsJ4`{{Q=4{pZQm-+{!mw`wC1tp*|ZPWd@1l4FVDJL`r1sqN!lmo^z*z7HhU_e$;yS z*G`x0vGQz^Qix|KnqQGC%9)?{`+=Y<<{K%F-Qg`{)eDmbbr=d0`J5A|$aM?2Jlat= z9DZ)zqC)$Nu{M5*f(!ZkY1ZtLAJ#GEL2K1t30awfT&kS&{;O+2t$TTUDO-l9V_F3# zxBr}^T!7Z!YnPJ=-G)92K|V)r${{ambO-W^1xKxhMLrLC&_6EZ;zZ_YhkZK%Zx8rV zq)!AWgQ!tdUxJl=h$Fo`z1e?n1Xf4Xe%G9y=S4m*{1+O8>ju+A@67Fl>o-K0rDy zM8cUksti{T8jq)l84|xeSxz0J=VISgZ3})Ro9EZIM=TDOm{^kDi`ave1`U$g_8I*Vnb`MTX1K6 zNDD5rOTG=Ym8hs;RB6qvQgR|zM$ZN8pRbW64U*cLdBW%p4FIvf;&qrK98t3mpCjsu z?(^0oYApA65t`;EzM2BVd}={t6CwgV@!VtBRPCLPKek zmC)yoY@nBr!y!fWKxbPMOzQ}68-vnu+=qJae(beO;6AlH#CPtYh`si*ya(L7UOW}^ zkO;+fZWH=FzvldBlz&l;9McRQ%6{#8UE6woxX#?V35oQYM2qViotQ9H(Wft8A0N2# ztf1>uLL-LduBiW_#vt%FqYbIngt_uq)yIx?YCgIGCH^OgfC z5&Z>@T|?dGa(O`fuMHojXutUI7Y^+DM+G_SesXLo<5_8X(4cr~PFn4nAvU$QC(2FzX5r^j7@q7`Hb!-kp)8md9CRvn#y??d$ z-<&LI5vRAp)$Q^d?j9r_2c;0hViYWaD%e5?k=4N`Ogi}9?;%T z%L-&k^l&SZac7-J|LVnFNgB)XLnwt*@4RNW86{TgegE2W#9j_Nx}x#WG|Tf?4s4UC zbGARSf0CSCq3M-lq(Vxj306_#5p5il`OOey&Z}3DS72x=4jaDscS{C`cVi`1^b$%_ zMM-g}C8C8BQM4V5F8+oIL@PKT0%yCz4n&DfwYin;50^%-nJY@CNN-7rJA>5ACRwop zOOuS*XG&RQel;hFN4?8R-V|kIKFm8xzGGhw*iho@0i?w%t@r`O)+7_#8DV!g?P5X| z;LIK$%uR7^IN2Ne%@qL$?)dPHrqH%Nh}wodDI!M{U?64622Onks68gz*_x-ZUl>}Y z!bV0(fF-#v={Ukv_dXrV_5ta3Jy>Sfakua4UZ;SsJg#*&Uz;Ws-&qthwZC??7C)0+ z2Dhm}_6BH$UWb+-yIn8v|6cs)xI3uFQHG>qmj(QG<^|`A$M=OfJt9P+iv&k-T@NL& zA2_ED>>`8OG@k<|tM+BEOo?Q0rGb=#2&vLk>-bn2S`XU!%nPbU`VeEfD?<%Qm@Mrtt5Kyq3tsT~WKM)?Re z6oKVFSV5D?4_eAZ11v}~PlQtlN(Hc(MbV%f*EzlpXZbs-2U{19A<>UeXTT5-`hLeD zgC2c77LUKnt6K%nj%mJiw!S7_-T)10Fe}&?_-8Dl0Y@KCJW2)6B!Xy6{%E{Nef^6_ zU}(#97Z{WBfvQY9aXL0Yp!XNaU2OzmAHI?}4?^}O2|(*tjqScKl#cTGR#%>uX{IH< zqa(BG@8o^gY{<#K_YZIw!oLkZPz$sRuli>Ge#i_NZ0n2{da%dXd3X;?d`fO*WHmz% z4a`Q-K|*YLA+`{lp_JYJyu;*CXUsv)@t_<|YhsxFmEB*ViD7YfcIHJKm382Br3M$t zhRCM1BCX*EH*it}3sr z6+JuchQFk# zzNR?;_0_W2c;>fbPakaIZ?ap(7rz+&?SwT^S}{yyR|ayw5=n z415nUklKcbDjl`*aw=T-iFimbQ0dtfU^6C!RUNZ}B~Mr-F*UQF1J6(fCCbIPXs;BE zkkjmCNs^hzpyMxMvLgUuIE**{W(|VVEN5wA;6BAhB=a5j=K($_k z71Yx|fhiExwoI-~aO$h0>b*BP0XJ$CaPF}3{GKzW?-3K_hZ-Q%AYt2$vu>zmM4=h1 z-vFqZXWYrPJ-7-vO9s2l2Y=-=7g-C)EfLiN-Atdtk8RF{z>H!!Y_x%3D?V z24?q%!WAaninFM)gH~)pUoO3S5WHK+4i6-yN zbpf}}KhH+)>-pj>qI~bQrjYr86_7aBOt88#T3K+>f@--z-x&C~{2Vgdc7T7Lj_?Rw zP-Hio{F@?gl7|JE^-6xMk z4Q;tAG3g{PfgBsuzV1rmHjgOCoYRG8_IG&Y>~;mhUq~5##4(=f$p}A`!s49U`C(@g z^BB~lwNaprP5teMQOVh*yB8O76PWdMlhbC8iA^ml;7_QCxn*yX%18?wbknIlI^a6I z_?Qj(<_2-*CwsV^V_&d8yPC*n202IAc4D#KT2%EQ(wJRcu-r0D&$1h^ zL!!QpX+M4EeT&?B8k&VXO?CRdg?rF?y|S%uvI=!t@G?_{YyHvFv*W+*Gh)ihGplg- zhUUI6wGbE?{^yw_81w?+$;x7*e>742VMl&Y9f%mk>k3kk=WQ$Q0OI~ublA`pxb0$f zT15$RxWq}7Mg^Jlv}`S!zNTxqNS}`-u!o7MD!<*k)O0AyrzNsAv?_fml8-@B6?35p z3IiMs#)vxu3pFrgF=nHOTI01M;y;^m)7*$z;|vuPGt=1Y;EsI|cA9)Qv4)#HzJ-&x z`w5}iF~JNP5HNLzbPxW{O9k>&tK@TcGsZ6_<|WxgJO6&Q{T8l6$ZMezQ;-MB7`XTvH|8szvsp(nEP^`t0GsFkuuHTN6l51V<1WE`ZR)A9rr z+?dt%C*=&q$Q68|(jAlhENbuT@5N&1xqW1l7aoXG{Z%(&^3nx-(u0#XvHd_9M7cjC z7M&}#9qlIimgV#fTuoS6gnNJGljCx|t`jR{nNa#H%nU4ITH{15q{DR>Dk?daFxlgg z)Bs_UioR@EGsYQkWdw@-!YJ^jw()YqCm22S+1Obi?*e0_WRrCpa|;am8_}#` z{T01>P!-A?@jhluo#{FVZMgPAX;js+iw|1EaroyUN?2r0e`1+~wg8saXLRU;_ruW* ziCOxL;>L}Be!L~4fAj0PO|EB~PZeUWf3mS9k3=qgwE)Gx0@iG`w$1=->HLq>e_ABP z1PFOPKNzRmk{^hRrizgjB<}urJZpyt7-|YW`Cp8(_}$~L@^Zf#!kSBCH)^ z=02osSZ>_L>{mRJn_zuBM@a90 z4*F&d$J3bB!X)UmCXDD$uc&3)4@f)d9bi>n8@J4_oplNbt(j&oW&D7+u3Rh0}K zrcqE+EwZLK7FKlwj;>SEmavF(BhCb{NH_;OpCBnyM(cEFpL?^Z;S3eAgrEK?X`bj_ zq$qnnd|1+3|A##+KrOFo1VnK00C2JwS+~|Tv0~2huojK;PsxineLYCD_D!&z6B z0V}7b~~2p3Ki5c0yxf#_+h^FK>6ttXs(-zCTTzn`t6h zinJg%E8e-o{P@L56B<$@Ww2>g?|m9@7$YEjJ*NhD^K zGm0{h_#ns6MiL{m=m?`M0}0{JxB~75UG4^rs-M(}Wb?RVRu#GmOj|sn-v4r;W3iQS z;kuQ5su-ox=N^@|M52N8n)GFk-Yko3RL}q_mw1CFkvWJtg!(^5b zPn==P<+8Co0)){ds-zyK0rL407iCoylL^Wrv-(+UvT38({TtXVUAPBhM9nu$uPLdiUGYAiz9*Z#tS^TgGUa^LV{!e%@GAfW}8y{ubm# ztwt?pq#g{^vNdI9kL1K{V7|qc4J&`3+1sY|%25@)Vc*|;%eL=&zuC-~z1O6`(DbW# z$oz1GJpQ?n%7c9+AfBGz-zKhD-lFlIMzSr4VgA)zho=Z0uTC~pBNQ(Nt2EPln?&ga zh3~c=y7S&YepSL;OyxBRYK?;ri4)N|9Lpw=3Waw0oa|mHMt{aJd1{68CULI(_>=-iv2@p6 z%J4APub!b72*{=87M|Pf<*?^nOrrAljMt9gQvs&xP#uX5K76upl5EymERq483^D-HQL<8l0aPzS<7I2#(+N zrFh;R(}oq++L(rg>!6IaPR|!U${Gogrg^iDaKzYM2Wgm}l>>%`>vpd<8W;!UlZWZz z?QdI@_)us+;ZeZ5b$a!7>{L}U14B=-yLdB-wr{)h?l=|0^Lr?&GKrk!g5RG8&IOUr zR(@2#;^xjh^^R04MEf5($=UZ$#v)W>%lY>UJ$$U|{(SomNvLeU5FLnFryB zL|m!i<7wWa&Wx8i0ha?TF>JM8TsJ}K`vP{wdQQ6M?cwyxDqUZ*e@0sXwmbab@ zm61-1$q9Vr9{luqUN#lZ=~JplV*XF|)AYa4&t_C>SzSj9>B+_OMlvJ+AW6#}>Etx< zWtg9kyo)&j*|ba|&Vu#<1Zvp=8&e_DOniUE z44Xka2Y;n2{v~qD(N?xbaYT|V@`(>(NYvu%b|i>hmMX2f%+?UueYJpYWqpboWqy(8 z^d7zVH*5Cf3iF#ta`AffufJR5KwA%dErl!uQ$j`R*O|ReHWasqu(mFy z?{XVxmbDR*tEO|a5y-LtkA&__&x(1Owz7Vpb##x_`xz$GuS{;Sc?)gEftuAV<~<)E zZ8g<~#E8htaqpQkDiP|BPJE8vkG2Fy>GA2?SFizJ2&p&O*M|6Ue8p{t=ZE1Dv8FN& z4U@5c;{tvAnb7|a#y~m0*N8T!qxQ73Cv#q;^Pmv4Q{J` zl{ZzN{)6+_YilUZW^sI9PFI&Z;gE?p^U}v&>6o)gkK5}hTf$S>zVuzdNzrMzyX0mV zncG5+14?7R-*LIUWZ50K7_Q(z9=_l?M7(j!1Hn9 z!8B4$J-V?fl!gq6kP_><0)Zip%x%W1l45c;OjCwVgstM<^S+cl0qUJS)5BgK09)&J z452Y=54z#R_cvx0ju;1EAH>--7(v`vZS6nIAqY{sDYW&U{mEp_PPd>FyT^T##9W9c zHBy<$F`_xrE+_2KV`A+wit4n^>-m}su6Q!E{Gv@?9^UYle*)#F2>fDlaDUB1H0Or@ z%lA5cHt-?fQ(qnx6>@u9Q2D1fl74Tq_F25^r!xQfU#5QOz04o@I8PqG4AHG~AGVpf z9@*x|cy-CLEF71G!=bou`Z)UZ*BVnuq#^sVZ&^`QS4{#E15pyk>H?o3W~O04YeP## zBrrs8^udG}9G{Q9L8q7qO^9}~Rdz^#{&zPs)asq+O8Rqk!uo~RNbfmu$9uX~@c6>m zp&{+dV#UyI!3>}YZp(qIX-n0GloK&1%l_7(u4dGwGClJEJFb{j=j`uxv?z?jfVBqw zYxMk9=ZBj%QVWdZ$Xp|<6-q0NdF#R_Etn`--KW2z>{*EfM&KTS9WG{D?PN@5cVNoc z_nd)~Sj+BA$yPCDlu98qu>Cb-&ZHI@E8Ls5?2iYgi!Fmq{q3f-L!(d#J%tiE?G3t( zf%ww%V3k=biR8>9@dGsl$m)k_A+Sf;0Xv+9v~Xf11qM-)8BtttR?WKAwEr{N$w;HK zhGM`%gj(*DxTk)5dLM*tz7bil01^juyTz_=2&yMDCWnj6?|qj=h>Jo>_w@12H*0el?zMcKC2*n*gRQ?U3?sq#7cH{TWIKl%&E z`+k)4kq`3t<_XJM*gtv9E4x?FDN{wMV`H6_VoDlaQ5s`%OjONf=}#C-C@V4Z(s0@!8y>Tm7Fs7E-ty;On2C~0I{nh4XE|xLGM8* zbV{W4&wWCKV^?_6+g6jOPu1O2*dO#Du}2iTuTN9$v49P&jUl@r>2e&==FFH{8*!Q( z|BntnhbE-W7Okrbtkk^e#6XChVbYW&t|eGX=?9N7=IQQhQETo=-}7B-aK=-@eRoD8 zqsUV~q0>YkeBw@)?he7&n`6USK&Q#yFsd1~xjpibvePt8DQb-4;GbI?F$Jvo?jR5_ z@dG|f@`Jj=DtdbDdn~1#ob80CI|masAux3jUXw1+3*7Bk1~CQ`#=EJ|8~MP=O4)6c zEeIhENb~oU_RnXp5#!Nsbm6qb&ja!D3c1-iwbvY~Jlz=8;BwrMVucwV5BbgyeQnj7W4A{T^M(@al&)%bJnZ3=X)6%5 zYdOtc)9`(AJSAbBf<3f%iiCR$q>w1Ous_UPUR-c26>4MJB&G)sAZN;YB%6!J7zWx} zX|;N@SO0rsbU(>B3}h8boxA7If~q$&Ew#IG`czM!&IbZw#@rXAk-&Xor!EQy;Mh6r zvl(;nok8pe#Oc7Z*F12m8Ha9{uqfn`kOVi!J(t6T7A5CMX%%hw&oUWWPdNb&Sruy? zi1G-^0U=6ewMrCWHBaNRa2FH9R*X^MvfoCg4*5Mchj#V`I|+w{@xJtZ4L2WO z(AK&#sxM>J>@Gz8=|cPD-4jT|7Ts>BeX@4}pLMQ3PHPRG7B<_0&r1-v% zeC>Sy-akIP{`G%4Ow;-)KEG#3=iKl=<$AF{t1tgj|AJL(+Wh73mCb+pt(4=-+`jZO zkDnZ>~!93wa7YO|%9^T3+~k_mYnXvuMWsotDMf{TQz zhYY5Z^u0ISkc8MGn>3IxYAHVb1&4XobtUHHi$gqR>a=)`AtK_z-ltf>=pEY+0l33+ zqn*GWA>*cEbR1th#;hF@vOC1UVS-JXu%?(A7n>_eDb!}9ETn0o+Dceg=&4vpK(!F+ zg5*pd2B?j)tQ}`QZI`|Auj`ED$R{`zUy&>F(B0`m|5IQ$%W9ylP(;)7A2c-DX^I9 z0XEtdw*9selJAP5$sJ3GZuel~nt>=074e&2j>O9i;pXU(h-P>1Bfp&}1Br1Msikr$ z!khy0OOLpjkKCJ{xi@6_M?(&O3Hb3(;qeP_CqX&ax#9nUOWM~1KlMwU5?U!~`tV2J z*1r3@FT*E4Bu9?aq6{tYL~l9FJJt{=7-oqFmk*diq8@f0Bq4&VjZAP!{{GOzqG21H z0@vmpIcIWnHp$VH6e5E(pAOZ-s#k>|iF@M~5n+>rbzP_;?!!|XwXSZ7yZVAn#l=8G z$H7&-`HKiG3bC2{xf5vO&_Fd`q-NasOE5xABvqO=D(*M0*4!5zZw70h@Kc8iTHP@c zou5Bf#&IM@VW|tV9tlL!7Ruv?lx2nO#+&mn5CSyYVqwLyq4NPs@moUx8ArBdON%hY zz;jV3rE*;k9GMwX;IdAr1vL1fwKdpSAX1EqZx{to9GK;aSg%C$r6D&n2 z%UfB)?_kt-6T&Y<(>zc2=Z60&*JlCm1AfWe-}v~|x2^xrZ~OK3GatBDpS^@b# zv&K`SLK-N=T`t?|WA5>A zyK(xdDM;tSA&7j!nnjfgkOfwgOjd^67GV{7n)`buQF?%wW znK%bL8X-U$N33fGN-d-iee%4#A`XEvA6btp+8RLuLzvJy6D7GS6^9)XLX^m)4qin` z6l=_4tP!#%1~o1Nv>;RsJx<0U4*ccquAzQvXMA^3^tAX5T-(ZFsoW=X|8mRK#XUlE z_KO~mSS@HZR}o9_rfG#@wd)!L3-K;AUGPIDT42OIj+&eT-h~Twp7FL5YiIMYlzm^! zJ~8D&9J@z-ViyUn$uJ-aV~9v?%rQb+iD3YPNTm`9Lnhq2q&|Lv)kYBi*#--wo;Q55 zk0|Pa@~gNbX^Po@{_6tE5&M~+o$6aY>nr%Ix7|x2{6dVmrwQ}tIxlViCu-Xd!$-f= zzo2~lqZh|N|Cjzye&>(etHhj{^1zq|#*hhBkye>fW)r+o zTB!tsF-3-)oTbsR=GJ_QUuy9br;vy#l0u@k)u&35PnD|Vn8?|eiKXNJBCwW9E0sKq zJ2?w;l-ho^$8}qsC z@IRGh&o3Fb*Oy-!fUw^yof`0rF>*1PonAxodEGSsFEQod_6;hUEFDYDx&nG31y$IHVaVB`(JcN-0)o_6{Wek~g_X+oa3k$` z`K)*~d>-(gPvLPqH~VwL{{`#txAR8PZ~yM!+ZUIDhgXy4($x-e|6Sl32t)tv@|5OU9+HD8z=7GL6p5GdLZ3rv$|yE@W)8?XM^lo#UhKXg}-z_MsSa;j(4HI!T52w^6hj~sjZ0wKO z-P8_uQ+^A+K=dYR-3r3(b=ADNSYP@|Oo+jvD`oBrZK8VtZ3d3Vql=KF(;QnRx57mn zJn6{d_m{v9-EPCQBJ+&7;(N^8S%(&6YGg`UI7i@9feZ$xtciieitHu)b4w)FlZ79ZJ za7wNjSsH2qf+vredDCwpfZE-i%I>VM>1K8wdb3iA(r-*+Aj+k|^Wq1?!vKxQAxB=W zD=(O_$s@KM+3)vk8(f4)Fu8L_EkKBgFin)*ZMRr(i12iq8}1h1dS?eAJ-9t!Jc=_z zj0{>R2hZ@`n{c^S?6|w);~)FF`i3|Dl@xM2H~cfC^LMS*|KLCW4ei}O_ovn;55IPI z`*2#0x7fqS=*|F2*fW9LYp-@}w(MbwN^0#2kB6slzeVly-^} z?0EF1XDFSV8c*cF(}S%}$N70r-AS5c;*In~-3wizYw|QyL$E&WoqTtcYR#Kg2v`)> z>I@tWhDanyWHXHn(}YO$gHN?5ECob7ht|XhwR78-*$vNz5g7-ruI@3$jH$DXGNDKK z`DEV2ePklR;T;qA8j9Xf)ru!ibq>D6IsKNfltqHScTNgt>)L`SPVr13 zz%Vd3k6{_p#P-1@``r%hYTuzR-Vf4PV&EW<#|^spdz{xy@v+}PT;FiY0ua|w^pJKi zMhn~viF-0qB{C0zRgCSvVK-|i54Q90mbZK-+lxt`H7#UwgYvyW33Gh6Vet;8dxGqgJ$Fyx!hbb^#9Zm$7XTX%B|;wD_u>6*2R za!xs}n9;0KnsGR+3?%mvD#h_*Nvy5HdSr|nS}BA8qAuKO)$J-mOo%k7#TSq?Bu{L% zTiP;1S(x%brTD_Sd%vqX4nAa$A}qM?zlacHMs+2TdXuk+h0epjTWfocuPLE9mj9&9 z*s<|UoEU3>AdEvI>cnj+-t1{al(jC7i%W1wP$1{bs?b`YYDEynIH5hzMYY|9-bg=k zRjnVOe%Pi{R<3zSNfZdd@&0id3G<3-!=?$n_kfQ*dBnX^eI;#;9j;f15{N;lX<&Ce zlEpoLTDPCb;*gKv`-<3)_H;7V>lPffTQ%R7BYO&sOw`P<&D2og6R$}A{vUY@U-Rp~ zus!#}C*paEKR5he$+C}pB$pq2*EhtU{lLGv*z$Gy_;#G%|3P&3hy`!zk%;xDTrsz; z4I{(oem3JUbu+Wf7&k1|+-G4rG@1ZxB_f@Gq(R=2c9 zsew3dJ%FUcaN%_D^w%+qbe|x(qrYP6H-}UE4_)KYsiIjz53BLr(y*P7dF8$}Y{=BB zdpx;*LRyPcOo2lb4rW|v;6BMIyUW7Cl(BRFPioz#b{hRAf#d$M4+6D2i&l&h6UVkN z41rM+x~`O_JQn4-+iOWb^pme|Kl8p{XK#PU_mRit+=b2!|5v2yM?Wyg5B=2N%TK=N zU#auqEA@Cg9)I$uDUY7ehD0nL_E6LpnE@lI5Q8w~?B-Op(6pdI2%@wQnFQwIOUbJ4 zj49$RPfbV+TwGod#8?-{qN^!Y8>=?PIFVBF+dydSjyq}|eBxB4wBjM!CqHu$pMWJY zU2I7fIjjeo;kOf0rZkYV2ajL0g=4E!locfo8C#XDB-9$CW?JX(Cv9#EK`7(BqLIWMaBt2qO{(BnC_} zSc0q9A#H|rN7IGagb)S}`^N-Z2|G{T8e;;4B$2{O3&LzGIgVWR#IP#D(q>v`pCk)h zl37vK9-6WtQq4ori9$v>HlKEj8lPD9>?AV?Y^ISdmn`$1O7W>3BWpxr;;4!(E1S)R z65)8P4!hwdY-*h{DXzT`)4PLM#LX^N8chogH%SX80ajPXr6IG-E7B?{MYb0gy!`l@ zLs`%y9BXiUg{BN5Xo##a6U%a!Asq1=ponWQ+(bvvAdG5#XYe$fhyHvFz}S>58)!n) z#cz1U4~zYAhs5P_JI`NTf;|ho^eMtRpYb<=Glu`SQRRalp2A=K{@-mM`}n`y?q7Um zef)SlzUxO>KKv2t;lRAi9F9k%2RLg}#yl{M11U&90HkxZ-2|(cd)QldK&<92g08f5 zJ6cc|9wC@EPfEg7war>@n)C<1I?ip{BMlp+8LO@kgp`v{UETh;Xk{%c5}a#Y>Pm=C z!`x0AIAPn_8==JD-ZRZ@bF&0;NW_>JL-MJy-%5rMJR29go8*PlHJ-i;usir8bPpJZ zdje4$Q$MkHvP4APTPB5w7)-;2sY5Ul67xDU4IAcVWf}(Rx;hOoraLWwr-zNS!=5pD z1Y+7;P}SU{Xmpl(EtQZGDGdy9=&x^c)@Qg|k0L!)%uas);80lKSBO2em8gOr4C;$x zYi{FwZ@B12c7Y&!#dSs^h^4&d!oD#YQSljAL?Qq)7Kqhr{K&OOqN>@AC zY@EK5@EQtfzp3_vL&OOSDY(|6)yig;IFvQSfADvGA5lO08im9ESe@ya=L!FB1IBsu z$-%z;yMHG?@pJ!D9qdc%H01i^8hz;rx*j>!J!LVPIz$p<;NoIS43WAVQLV)8>PZDPDETFV;xUUL0HUyuPz)5>Id04ZP~3e+i_xdJa9Q} z2nKc85%SR)t+II^4La@$Re06U4zr^~v_sQ~~{g=Oec=?rovBvNvrPN&C^D^zDuhQy~!#s2B z76dtsjGI6tG7S@GLnVSW%DSM^VT%s6taU|25%bV%v4$3>%VCCy)8|eB)>RwU{n`tS z!TcJZf*Wt0=FXU$;uum!B(f|=8jV4cTLP$3%gPyt{ zpW-7^$Sids>Qm@IF|zsecFN!$2o!4f!c(@m z`k`BmS{kiXqNHvGP3OTkf<;uISfzHjVl@!ap8Vvuo74}e(Dxj*zvimKQdS<9BO8g_ z8#Zjyh^PnRSX0KTgkdCEVhS4<*o8zABZkql5c<_Agb1zU{P>}*c48Fy&O!TlZ!w~+ zV9hc1EP=84TQ5oA8JwDX>^FpFur#-fp3J|y+bCRzM%2@d#{GLTFp4nrufrr_*1FkE zKj1qt!F_f7YdERBX+B`2&4y{3xUnPmzVoLpxc8QCD8KG&{%p>_bluEn67+L!_`if| z|IJ@{`|!T^{_`zee0dod+Gc<2BV#W~N8zlvw*OETuMd-Zw;>E z2{Q6SdjJL+sV|fxKD?Za?M_YKe5>Gtfaz=Sn7$BR7mf!(YvSIsOW^l^%a?}CXT#sI zhW~3C_Bl8FUu5ZD`itB4o}c-{DUDy#>N48PkC{LINyotJ%DOuM%GgCiNkU(YD%$*- z+7wLOqCgPVvQV`27&wT{vD+MlXvt&q%;Wf+mafhO=~rJ)j+h;fZd6K#Lr(8rYmJ7` z`t^OeEuNAkZm+x@Cx&5Qo>vZs1FKb%B%%pJ8r{x7d}dEFvKcn4WhP1RAaZdr)|k5Y z$+CBWyaaN0aa{T`F?Hq+I1Mv(T%Xq@bUppzPY82AY)`+U#z;o2u^A?`RB9^>E4TiM$dDV zroG7y9`8t{v=XJw%1>f+_(*@;yNeNQ%sJ z!BUSK3C_rHj#FwobU}NG?4o_n+8!)M71xugg!Q~65H|fdv=Cx62(ubWCVh?*!)_Gxy z5w0$1FTMPnz4*p2t=sqmsUN53Iyd~kBUiWbzxp>q{=kR7GJN9W|Ij`USFP=-FJIGI zq0L9;+Z|RHnmD$bqz65lPj4cx@ntdYLaMD}y)pQd9W45EW)MRlrbI1;(iRt|h+Fuo ziW_u^FiPmt@=3PjZkvwi#-8u$6TF!)hQu%oj44w~VLi^2x%2S_5+gAN7iG0mxOaCz z%$Z5tCfW2vJ@kB35Alc$<0bLbWW<-TsaY2<(GRG;r0WafdMDn3NuDO=-tq8p+*=H0 zDuehVZYN7#gceRT)s>Z%43V2wxRQ*P8^UlwYs$3UIsv^k#9Ch}M{G!t z2mCVB2(6+KPig`JkA@zIQv{;)G%8`n*y8S|5~9;G z`z>%;j?U8Q@1;oe-%}TbHEX2cB*=gp#SsFQ6Qy{hqoRc9E}ga+smG%?f7~u3bs<&5 zXwjh|>ktmwxDc2k91Lc|VW~c;CtxDp8P<7#y1$owK=FUN&0F7Soc`@})zIS=+X?3D z&qwGX>Ny6sR~K+w2=9OQC|~<^pO0!HP|hv=-0=UW8h(7u(D(~h{u@8=oVEQQSX2J& zczYwemmV_f;^Ljdp4LN0f|fp273Q)M?iQtPL7=s`X;*VIvMhpzL<+9(OmRSMW?fxb zy2+845}`&2__9!hiZ64MYbBlMjZbN6;=U~A*mFV2{r3=`tm-_|nEgSGsi#AE!w3>P zTq3NsGW02W97m>U!VZnp{PT$fUk_^qjflE(a%iwvW0BT9+TH&6h?4rW>wf8x5*5|H zLkJ+vo=$r`V8xfJ-YnJ>nd?FZT5-|Ouo>CUM;22u!rIlLt}$>(psKI2=a6XSz`Y@J z+&v=a3u5SOA2G^dA%sLs0~VuW&N=zvw5x6#-5En7LXgC9IYRU%-}((kJ7jfo-s}#| zY&5X?N8EV|(c83jwo=i?L02l3sk((mFc&w)VMA+vgp^vyDX}zn&8*G1oGxk2+^MwH zZb9+X8bf0w-MggS?yy!J_Cbgtv8s#81Q`0yK|{by7%-j@ctcCPSCscyWgkvC$*?LM zXk45gu;9sC)?v)o+USMQcRM}&#HpMPJ;vZZNPYW>^5%a2s^6ZcMSs&xJ^sDHbW_Zjb3kVyu19KH5v|l#9d{4hO}}Xf zq!^tq)07yyjJ$%Fhl#kO<$@@z0VYetV2~XuiK=7^Zn1!%-EAI(VoDQtzHH_p+MY`F z^c>5C9yadZ^eQLcO2yR&qMNuRg{)rz*} z-eo=h$R|*Tx3fu)4HtLkY^{6N1WK^3w2U0(>9Vn*B=aP!N?_?$1I=Kj5lxvF?Ws#( zd7!n5slOIUAc{eAcgc+J1dfX_#f*eXE!P~Y3)vEa4v88gSrQb3QqZ=NVk2%Yu;bCO z=V1haD}#C7gT!v}>_F8(U=woZ>o;fZNMmdMb2(UJ34PL6z;mh z6ZMMcAWRAi%C*3Tz$aqm6Y4h08+Fmw%u~$2&<_f&clOtd2rGffV3o|M)~yzN`uFs+ zF2*w7Z=4`YYvSEJxOMilF2wWzedS>oOMV8s3m-ezx#9oq*OcNro;-Q<2c@*nnrq?7 zJR>oZ?q6az?ozpEA>tH9dT@41nGl2f(Kq*FKhgCh1SAQxNUOf+9mb5dz&N;Nz`8EZ zP6$HmcD}*%Zej~Ddvn#=QE;W0vC{>Hl@=0fL2>tNj=|86|R;TLG z-6wnQ?Q6cD)*B3cfw)wse!iCC8M~iOL|Aks;!dAMoiSBPCCA!h9u1pUR$U2K_YiF) z0)B~!eq)FON=2r@?We+R1SR)*|+IkxT zn>?}6NUO?j@9}`+xFJhIgD+ggj7>!~n$102s{k&b_zq?e40|$2ohiG|_d%L?H znOP?@*IN6({*Qu$&aF9!bfF`dGAeY#hVH>R<=Hisz3~>ytR#B+8JQAcvh3t zv^Ik-b@ZzNNp73W>jV7E&%QQ&<`ZY#$3F4oWuGG5)eEzoSONm_!}W2GgHCD!!tG}?8aU7o$*4i zYQ9Jmfsp*zi@1k)lxhk_RXM8Phg-LJp|{3%s7;_P!=i_-6w|sOa|5oiW~LS(s886v zBw|%dP6tnD>SO2hQ4y>r6^XbqwNPdwE-{Wp-ynvBnX@)R^rh}(ij>2gOP4s(G;=+H zsQH3$RRghX?|78~j7GH=%E4I3fj zqBFPFuDJ*Z2~aJwqrWe0ljkdx!eO`PJVc&eKI6f^{vWXa*st7^|HHrZ0QmaLV)e4% ze|I1M#=j%>*MITv+-@)b2ba_MI;$0SJrSZ2_Eor4GTnOZw#Dj5Q7P)77I~WA(7sId zWo`%&chGWngG$0g$=f~K6p$FP;vva2sw zRnD=Dbzxk9P^}WYfz3I-)!sSSG0eR~7=SFoWbk1XVFd!D4lM@bwFi+%pbr5;J^f{; z>>{aNuSkfA*a4SY;y6Oz(ZzvKCI(z7E!DSYT`y`=JzEW}ABYSlSSUQR!ZmOm95@$~ z>i1*pY7TBPNOGjz>ik@J08254?*eYq&`yXZfwR?_zn&-O-xrKh>R_V6zPser-5GIP zB>vcs+{@>$+<#fDe&-ha-xP7g^l$(B!vFc-ensBQpr(sj1qqlZD9=I7^wKkQUFA-@sK>p^J2XbDM(at98BF3$ zL^Zo?vlc6>RL_{APwT}`8zBV5gpvz|OsMHwQmrCN^~}k6tU{Yw#DgE}JHl+zC5_I6 zi`J}SzFNDOieXxXKK1u(Zk<+NF}dQwg4KNolbd20)hJYdq+rG%iPZPx;#!DFi<1Miph2Ky&dx5d(M{j5%48}d zed^gWIbhTJMouDGNG^bs59wSglG;qwosNL zege*wcC7oIySH{}-ndQb;Gme$2bd!8sYmQS`si%koj-b6&R|Ne!@`(OE^ zAMQT=ePSEM1Sc>qXs5t5~(Wt=|C3~5<_i$v6eGO+p`%# z-Tl#FFc;bQez#)Bbt(@WT~g+Kgb3Sa`sRwJ`8jK6=y-Jg(0SwHaf1P&>pEhHu-y^+4jnVn_a3g&`I~`NOpXKCNp-m8B92A(p)A3HCsTO@nc%pq!q)k;o1J0ps(tLW zkUho_I;O*pBt0P}(1{d#CNldxx-~W)hgGBCIAqz|jmw-iAYe)5y%2u4N z*&7RX&D?(HlUta*Ih!+Vsm~vjNwMj0)RNSbVc+-UAh0*4FMplkCw{KyQ@{K5!yAue zcxvMV^6FFy6KM*Xjo3@N)B9TZEy{OfqqN>%4-?95r z3Ywi7*yYHWd#8Y!b2NN`8|b5}Vom&Xknz+hr%O8KAJof2Fh3Oq3b~d7nU~A8Kw5K+ zsn$2MjdcC>1g2)XHixHISj?;n*?aj(Nb0!WZ#fe``FRkF z7mBg6yE+RD(xZ&LlawzSJk3YQ@H)V{K1Um1XwP32*?Eq!)rRE>Sjl{6Lv0G7kpSeF zrJ$}M?0z`x zC7!L$plli0vtA7_PGk#oEht+A9W!CoyOehH;yeVOYzj(F5c6?)DJIC-K;9p)Dc7)& zh@~ExN|o~qCWRu-WA2i>P-@l+Y**Tv6+(=p;1oGqt;w|^IqkE`_)~*XveWTOA*+XP zH$QS0e+6HBmKrb~+d|PTueRe3!@M!XC zL6S$~A&g~LPeyIq>@1z8r3}HB$*C^?SU@*cC(p2$CcR?Vtl4dMt0jBhZG{@Lsb>R| zxWC#kq=Cb<#}ozuLgLx=6>I#tDW#A$11jQn&LPl;j%?C)`Lch;XJ3M(s3kCB|MV{w=}~d;xqYiixw6LO1a6e8cW=;BtRJ)L$pj zjEBPpNfFBvG4#Z2Oyc1>Ste2pXqnt2s4|y(NsK7hC};R%c%YGwD7=fZ1u~vWB{jye ziLP2v4-%YOt3s-cKI*Z7*EE7TS~CSVdoy$Vo|@z}bUo-qD4>>Ik9Rn{shj(&@RE!F zvf%&M{n-BR{`Z^m`Ct6eC*##Wc9{KKBc8t5NA;&AyCI~?4hF(gz<#ZX-(wUVJ0g3NwAFr*c$ zenX6jfU#GY@`0kBQe@-S-6FdV6XS3=(8YmGH~6wLI$Sfvo-X#NW_E`?y$GX@bMpZ& z&X~UmwU#Anc*ew3y?O%V37QD3xLvbWtKMLW`GJHk^mO83=wY7L3t}Ub10_gx{8UEq z7`=@OlQ_#`1tj$t!3m#k4~w&((FADBvEx&<8wj26 zCxT#N?5At`!yY+|*eas^iqR(a&z`UvHl!G#L{KQ>7D>Sus4<`_jOMs_ABCi;n!Xup z39Lzu?bk-s16_#h)bVX9#+|HiUKic_P$L`FI1o6XL^W2!is7|ac<=qka2OFQwdmr| zOy0B7YHN_el5jXoh$wqGR2NUzjl{~SzqX7-VP(Rk6PO1-KP2#bs$c(?F-8+4xc5Wq<*d&3GX6XRrb z0=vVW5CiMfxs}1iK)Kw(VWNx9DJiiEpb)S^9>K;5$rIc=$FdTpLZ{h8(tle%uWbJ;kY1k9dT!WcFnwARNlbv^%hp6)IXMYhwt##~)&(J|V@9 zynHi?wM^6_=iRg%K?rpZe&_4^wocGG-5Wte4Lz^^_vSkeUpR(pcU+Cz+R~1u-aO*m zeNA=Jnim^uI+KNpd0XYe)FyHS{%rnhOWbOYzoqCl8Jbq&|E2DbedbI&|24)4p`-MX zKCQ7lRUw;GVqIt!d=HX+F)9X=Ij0@cY+0bCd5zYHKkBZeQZ~!{xR@O_TgsW+FxZS| zX4?c~+hU%QcV|K#2GWhyxyimpqP z@6mhxkDdMK-}$4L+pm23o&WIbQFePI!ZdC9#M!It#)&=zw)<;Rh@9QO$My9!Y3R|C z-3xxZryK&|Y}LptgzS^5g@}!#hg_!)DH)wccxnt6=k(hV8*`;AR&IVNr05Qyl<i{M18TUvk!d6oV8T3YYA}{dljv@xE7C?ee-m|X@0Rf{a1&G z8Pjk2f~M;1q=kJPr^8l6OZ94>k)B0c@UXw&w9VkfE>3&;sbhWKVIg2y*$gXG%M2Ao zftVs?92uuQ`+V>wYJuQeTtu?d6fJTsWzIJUG^SHiP*(i_Tt0s6x{$_B!nyE4j6-Dw-4nRdJtg!`-RygGze7bTU%v9-gUtR*M`u&l zYDjHh86gK_Tt-;pdz5UwgOu{BL~YYjL;TzPaD;e<0_4|C{f8ecQ)$h_SO#OGqiLlJfRs zeE+E9?;CfQpL_E9*@Ny!|Gs$9_k8&;`~_AYK4!Jwb3Ja^=ZQzw(f5Ab-)*mmDUfTX z+K#GJAiKQ@gu`Xc)`>O**3PVb)dp9pLls)d6XvIBm z#`5%j~Vza54EtxVD z7k#y`3e$Pol;RY?mi}Z&6-`MM9_2ZrrOf6Qb)i~IaEy^2sad*CYfY8!LkL{!G;`M7 zucq?utL3uJQ~T{LzvCm#hyV76nx|z&;KRJ5&~ZUR1adym7v+ApV%(3!l-O)8(0uU1 zcQ|l39MDo&4Lx1gV^y)5bLKD=iq&0>Sk)if>?}#uXcTKXP*w};v9X!B4#6!O+<|m& zpfMn;p6SC6y>NzkHBha%ZBE&elt`AD)GZuRO2{-a77v53+lERB_M&dpJ+o~adJ2;X zdBL!9m4I7uhiZA6YrsueFs-CEucHXCGODyxbGd+Ko#8kaa3xa26Sz{sG}EPlbg`lT z{?9??zIOH|MWRH?ZzOq--^O7ozheu2&g1#x$B#eurICov$cP7P%#K2)15mnDz6`4b=*F(=bx`pv!9En{|0k(%7N+5-SRK+sE ztTKx#{Gd{cy-!rtlNr5bVcZI|RV&_QaVj&AQa}t958B93tpsWbsVd_eESx&=hMCaU z1W9hHm69M+u2FeyHrE^TW3Ewq?rb1){y_T}gVo$z>SFh399*jJdkhf`k?Se5wZf2H zzi>Dx!!S6VvLnaCn0*bhF!~ zs?LgLt%?p4zitiQD?qMl>`ZXqqMAqC_AHasQ$kB(t4*YnHvKn%OXftZ+8!Lvtlhb& zLMgsjMx6Qf<#*`5_xfx~{iplbb?~y_|1DMUpFVy1@cQ!VPaY13A4#$Q?8SNa3E)8~ zC90~KnyD%&1S#$*Nz9qvj4>#?{ltbd^d78#&+p;t@rQI@_!8lAPdV&)`t&L5e$9S= z@B-9z48uU4+%zl(HyzuL?*5o0us%O0Z?}}3>0^Q+!jzfRVITxFXN*LNN>NwsiclRK zD_c1RCW~&;HjSP^8l#6-tI|oLOOdf;bR3aVjj&XqKCVeKN&Q${S@eW1(4~&OxL0}6 zJY&htreR5jZPQtqDTTFMN}J%A)vd*j_P3=j>TbX&a#Y(&{oZ2A(J!-l$OBOUtxIQf zWoVmr2hC}_d=qH{qm)}y;#!8JXoGN6N zfw8J+GP4rGOO}i=qNL?b*KnA@~0C zpFw}$?~380-}_m0=jQ!yV0rm%9hLYyuHe7(&O6JB4lbh}CaglkXU)loVX+>Y;SafvGS*cz;z#twPzt?I^Mqtm#d;2G> zcRSA4XLK>q#pE#9I64z0B>L5vQ&o#+1d75CJ2zmf;qt+h-aKHuWxQ$#B(0E6wM|&# zX;n)GPah&%wb?Hzn9*5bgY(=E!JF}@nXYaTIt-10LrflNshOf)$`eKi39;f0-{iT4 zw>RWtRAX!IL5xrhkg_Kua8(6|&FZ47r>JA&l{qCV%@CX(Lt?~_DZXw7Ld_~R$MD?~ zM3B*lpZ}XofB7#5dE?Wc%)wrXF+F)%@c$Ml_+R+K7gEmok5AL|PY)@*9YPSR$I`5B z>}6)N=%rk52~#G7m4`(4Fm=LU137Qe$yiw+ugrVH+af(d(|55*@K8?i8v)hT@`1!4+JWlKuDQNuQLp7mQeMbib$Aplu2vvOa zJcB3FpfSgOQiVp;1ku72g;F9Sg+2+rMl2<=8i!Ims3*w0N3oJUf{;k&NadtHuVHTZ zHYJug^McpGN z=R9NEHmfp6pUQ#|>_ETi(HznJ$XG71Y{XUMFpX$d;%jdZhc)}FEoWD2#s~LVedSx^ zi^zl3Id-+Dl)?aqKzP5^)s@H1iAz@c)!KzUDY4&f9q#Em1}lU?}Kc*Eix$k-| z6VrI8~H^Uan)8%nMI#^h>dM3(%SZ6>8XHZ?zL(;>hn|@ zjMG-t=2L&H4w?nwU?VxZ0bMfTx^(Da%hhnfD^|$wJ&`W#@0*=JL|zv5-?0V%op;`m z?RNXgX`240F~&ccLi|K2&W7+D*cuZO!p$F?3NbpqK3fE6@y3t~sTej*&Oq6$=s*58 zW`^p!2^?bu-)1!|s8K;RbL?mP`y2vhX2sRSRfiiB{9d@kN8`3avn2gvB z43ltwH86_5l^G{A=h-gUhh;@ZW$IRl?lDy~7qVsg)Dzm`HWyOp7;`2BW3Y~tBA781 z$B6r`r|Jlg52e%yksS{CO3cA5aag$1SP*`m6=qH!4;&ZhHYl zfvAZN_xm?-mfFn6I*bgPGm@<7E?%equ|LAtuQn0hQq3WRq%X_+@1TPJ?AbH9yuAF# zcDw!Yob!(Zzbl1!-i)YB_4wv*pQ{tTnfZd$3^b#;%uB;yFjn{_bdi3wA)c+!SMH-% zTlnbPl>LG3KhN~<{R(;el>Xtscs+5hLa%EM1Y#VqlGyDs#DQV6Vpy#>9445I6gtAi ziv28mFKnX`&wCO9t29iT4(N2iN_~fjzDIV^xdHU6_(62AZ?>}=BHQX4j3mvPzr;CZ}-4$aQ8P(@q3kTvDAR1S@ z9U%l(>$L|?C!v(iC(^NZACYM!hMuqzhA=W7_DFH&4dOiS6ni8?-}`%WGN(jZ5Jcka z{Q?kDB3cI)3BmDF)DP~#AO}HGqEq+jp;{AU9NX`!Iu_H4BH!|}v+VJWGd>${2)DF> zFble*EwJ3>hD_>2J9EM7GFPhCPE!Og5dXPdG&|^k&J(0qD~=8U3Bp)yD`xL@txM#J zpX+=AaC_cEQnc)uO5wr9Bf5JJAZI4s(O;Y)IaBs~XKh7438bzgqz+PooFR|oTz43y z)PyRh*jf!^SMzAXc71}W!+Zu42KC8hTQ?hjasCkjH&J2^h8t zgrsE2#7}&hdw={b#;y>`f$f*SO#ILO67uCQ(;Y71tx*DPx2U8+F-LPitgnS+dyAiqCaxjqKUOmASDTQ>%I30hLG5oiKp8u zj|>zcbsc#;FplF~@YRg<`n>wExG#B(9ii(`t#hA6a&{V_R+PDw;EXTqZ04@}cZirX zhy+5>ikpW840H6UzXAH#a_Tk^b?+OgnMVsZ%tq~8PVi;M_rr0?H{-(6LiFZhgFs&e zU8O$$7MVCT22#Dx$&@Toz1^K2*_pAc(T|oAPoI3iusyIoJEw~smb06tRT~H`Evd{G z?Pc#7U0ROCJjH-%at|AG48J!jg9l0os1#x@GlNG&7)bM}1f_=Q1a<^s*K^qKT|{RN z$91)6XO5xHt&q#2AvV@f%OhAaoEjWJPjtBYieSyF@?>cpn;ScI$V zrCFmzQXMzjG~b|`FsB+F%4~W&Q$0nb+CWRqvz6Ie*m3-N+tR$%IYM=d?y>Zj*W=7y zi@Ja3X0{@3Fq22?H8zTH%*@s5@zXdl8Ulm4E0UIpXwiA=gYFfk7jqMZ(k}{W<*2uSxg#a^RI!nmtWke*E?= z_^SHm)z#JiV!Pe`_1u*yet%_iAO1+>kati25Nq>#mGFiPds zSCw!vTbu#n@iyv|Z8tZM6p2`9znjBUg=46DLmc9~rWAr`_1RGlCWNjds9Qz!9Y`?B z;eZ_qF?RklF;#q8kr14|n-YktsYS$3rwWsfo|7AslLthg>xd;gL?#{~o~tFancFjz zYN;_vE$1ns<2VmDx+vPEo_=IOwN&Fd+U0CySvjC>QJ!mYwi&V!uEp4zi?1@m&V*I{ zjtUm>@hbahq3W(W4pSp33X;12Uw(opE_v%A<{|Wv1n(*`);oy+Y z)%KFjmncUptjaC>{st%w6zB8oZ)!upKUU+=594J*4yAO%| zv}G-kNFX1s=%sU4O3SRY#(Y?DML@}jOoXl{6~8K}>kxHumKOCG$<9xu5y%xlFWW0D zB(hHR7j$-vip^O7UE8C?NIxl;s&kQ#?UYq#^cMc2GrQ;JEN>EKSIpbc8RE@m(&H-k z0PO3M+c0*R(^zY8%7(~>$WV>aGRAtbvuR8JqlTh}at60&P}PMD&`$-?I<`R>!k+ai zF|DpS%a=mbi$m1(64Lo?T=2j4wXeORs{fpb{F7$oP17t{b*6CnlwOakA=LB>oBu81 z#v*Ovi7`4Rs&3NNb)9>UROU|X5>%ryFCu;)W`QnGh<~& z>M}WJwq|teGtZw@Wz%=;-+G&~AN(Q8k6g2T{0`%P_>=JSzsTkf{Sf8RTk!6CJbUjk ztB3bFeC=!W}y8CwJIMb;j$R7S!8Vus~|kI zNK|Jaok>^omz6bvNJk0I)n9dI?DK&`$#aaRUvY>b)kUtd8v~skNM{$AityL}#)i*+ z_GP{Q?OO1^^rbJoI*#MN5JLFVz?)hoX~mZt$33Y&CSjJ`hYEK@2@sALzlbnapPPnT zvw(DBj7-xs2ZV>JP0Y>WA$J~ z|4&{p{nbx${Z~HE`Nuzsz4i$C);sXc_XshdPoGhqJt1`Wq2D7Wbiq}ghbZ*ddlGQi zZ6P>}IUaUwhK^izXbcSfn$>1Qd3H(Hb?9^;n0cs(8GVf8GBV|nC_)zQZ?{`v3WmNoZazbrxZqv9IP@!+Hqg!98^;n7Z|Nn z`e4JC8ywW8|0qY_AFT~V&0RjNCX(G`1{wPRBF)d=^NVAZ8=DzdOf@Xs=%od@c;c5} zjAf)qp_6V74o@M{#~!M^wG?OB6m=817(t?8)yxbD&d_Q$&!JjeTOw$#s$}Xk97);3 z(Wm;xZu!2k{_ZVRs=et`J<&GUWNDvK7Cxh9%r+SfIMW(X9&iEM9>_H_cSm96t&6_E zTXejI5wx%)b5U2vDwSqQaE6d&%!CQB8ptm5uEPakB5psSDPZHsJxh?hsm3QeVLzS^ zCG;2qRxKOnz<#peF&T)zJSo7Z0TVDNqe>lHHebZKC`d`1X8Q+Bnmq(tcgtA`KSk0YY5 zfVzX@^z=ifX^V9OX}w~S4&7yJJrE?29oNAml18NqaG?jb)bR7zm^~gz7(*hc3w)g2 zPi>)Dzf;La&g`IqcJ% zA0UF$jiv|KSZq^~lm`CjzbbnIUYgaNuZ7G1kT#fE{p6VIoznupP4s ztW-OQND-~?A%9F`+1K3*sQMb+YLixgoG}sJw>|e*GmHlg4_6Yu|Lt{3@^Zre?Nsm| zKYrXldGh3k_xt@nud07Egz&%xMmA&YU5In>bT03)fG>;noZ3{%{C8D#5Aa11rxyJA z!qlQ~&F7^BnY1Qg$0o2`DlPW}vmPJ@S7hpuUYO3#7_u^6T{?pzCc3;L++SlqaKYhM zzr^%xOL*fo_7dpVE3EIiT)$8FAkys)=(A@`dBQ?qJ*?Re1N~cXxhP6JT5h%7F@5Ws z$Oj*~mpFxS655Y3Ee8IjKCYw;6=)TZM;Gc^pRE_Z#pl!~yoC=HvL zH%=Xtc@Z3>`Tp2!{B|>pBg|86Hdx_>u2e{hS`fQ>pUN?O+(lu|l$oj}Wl$xME3Z7# zO@S~SNFmWlM;G0^PQ)sy)qig_!}eQ0ErjH%YY{}nx$kp?W2L|btx8#S+NcQKA|>qB z9t zt=thgESBU`eLe;vIUIfS9Y!jYIYOsCs1T6=eO9{3Ejosb5?)sK-|7W_ zyWNH-Po8}4>C>lwLREiMRlhf-)Hh!b5g~?nob0N{dZ@?yd0MxcTQt)Qk4&6K)sz_K zWv&S`>jUtJz*hVh;;kb+%^b#96!#@9ba?`>x`YxDh{q;SieY`n=9LGOabh~`kYPZw zVkt4a@rc8E&0#;%z4Zo`diwKovJ|nUYJX^t|fnvS_63He#L9%Pi(Onu+N` zi5sN}m1^Kgb#-K(#C0zDO&4I|4x~xotiCl`u=|KHNntR@yASB>Tb~xtl4#|hhsty@ zC1Fe&h+-rysGj4j~^6`DY>KvXY&6A(kF*VG+S+Y+`b zb(!1fs%-$NmepDxr_(yA77s^#M3f^WHm6k0O_U1T!8LFxPQ^6w-HnKFR?lG(p)=#m z;30|o63Hkdg>@V#>b^;h1=QR#Ta$I{p1Oar>Y(Yjy|qH0g%ydEI**ln|CyC%+f~|5 z17|OX{NK_Af10Lrd3pIiyu7^p=cj4Y>1g|AK|E$*!~f)s8}_GWgxE%9@32=TcItDOjf1-AP=+6yTN=apA* z%>mmaI(ZdI*N_WwyQfItYJ1K4!9BXKzlUDj!`^s}?N`1*xqL<%2Fk^TBEpu;@Y?Hi z`+{!P@bNdeT%S|E`c;O*fr$~>WwJn6MREoi3#l`Lb|{6uzrc!nxT_{g&Nb%FPdlS# zUkp~$c`;|+q!5V`(3-QW)#0=G5v!>$5#7hsEe|TZ(EL{vsgtr_Co07=*^!A=q^eEj zxPXM#ylYSf?QY|&_OuGSbav!^H-3GZzXl=Lyma=0&+Pr4MP1`iGYUfV$70o-r_?;w zjC13o2}!Kl0f3f_1g9RB7)ZmKxLy&jc5bC%(8c7-$>K`Wh!BGiG@+X5BoZnHUWzxS zA_1znsx+UPx=(7?s^;6wP*x;36}O(8nni|G>w}|yIU=I7$NdCs5uQ@m8;q6Ks;!Y= z>?Tv`X9$9n)l%Px4*isx&)Rhz zu}kx9wbQ^-UATmRj`wGaV{Wyo4LAMamy`Y6OziaZKc8lF;ygqs?naq?yXtM#=$OWu|c?m=LCkls4EnG9I=LTSSE^V#Nr-=&}%Nc4E;&3C?Ao zN^wU>k=aeZniI^n)Y*&;39G*EAq0=)Q&+TlMqN9~+dS=2O|}FfHF&J~^;8Py@g!E2 zx3!svTF?p*O>0r~6G-Mr-(;$q+mRE9d!?fGRl`4vb)4@JkTNRNR4*z+sLAbn`K-?4@Ey zqq&xITk3S*_ADo<&@;*-)xw$vK2@Av*sJjjc-HKj&HaYDnuXifQ^Hf3*qd<{pjSWH zgnDhvlwM*r=MxW`sRFQ28A72(X?mNC43_v%_gq+HcXi3;!6SM}a=03Mf^1%v_TRz< zzm#%*b#?X6Twh;*bedc~A_iU8AtFrEG#6iKeEN#f&J$nd}v&81jYQ$2V)R{T$H}TT2!1kBZzYBeoO?3W#HYllMPe6ju<(5tb z<;(~Xm?mU1V8hBA+}4P%KJ?_Fbx-QnSW2)S&{aZ6l~rVyHwvEL#ywK&XIbdPO>fBL>KAUt$3xDmQ{_| zbm62aKrgWt`j*6XOzZ8$m%^n!?;Sp!Hv?ZoxD>Tb5O^Q-G=WAYqNKF3DcPDG``I4w|p7vNf{*>QzKfUYR70Iyr(455hY zGFB=?loA86ICh^ghAOtoO|TbIH5Ih#<>QXB4v#t|^vqlpAFM~m3El1)o*f1X_vWyG zmmk0N3jUKPAN>By%geuG9LH#8zECyhMeA~z+7gvquJ8C}`@WWRpL6yjagF{96|B5H z!7mGZ-TThReu-hhR*)O)n`Z5M`}P`K)TVi>_-o^e>(YuCz6rPcs$*vP#4( zAQ1-jjMrXawL-72k!P0-p(mn@PcE6Zm-J^F%GsKDcHvAWEy!VFeKr!rn4Uai|Lg;X zFpxKAgnReVH{Nnf5JiL^gpu_NvGtXTQ7?RpDh$bKS* zfE1s?x?p78bKeFpw4#hHrcYvBdpg_Xn0sW^Go{pGQ_v9obXI-r`zovV**Nf2#u?KW zJt}HTg=%&vgM=E@S1Q}Y?FCkNbl-$>Xzc&Gq)g_tQLFQOqK0tG(e2Z;ux`UjXt=hY z>SAMSnN%0cy5!Vyq?L9Ny|-aJ90=D3tQaNw=`m?SyF`h-bK|XG5*Y1(n9{}Q8UoFj zwkg@Fsc}u{LRr-uWL4jfTn8U6I`j0fjT#53^i%bM>r_gAZC{Hmq;oJ*W^KSu1T=D} zQHh6|aD}S zs(XM(Pbg}tGAW959Sn(h?~J_Nc_a9!G5p%s+;8UW3|kMx)f!8Y6oqNZUWh(c=zsoi zqF0y15IxZ3{slQjQtI44J$X<^`sp?Mci$mQ9n-T*?hQS5enI!aCFAZf(h0f1VHkL@ z&y4sf?8-9t=sl#Qy^(9^bueG)I#p2T1#jbuLv-s3pb6^==3*{AGI0!8FFcWt*II6{ zZ5nT0D@nhNdP+ic+nQ5ItO*9g$+Sl3g`Mt3$}ReG+M5;94a>m>lTzx z2>}^;%6121CMs^fprwkr{B#&oa16cCPeYnjzEZLe5|v`<@J-Dw=Jx z&FZ$r3x0iNuI5U8bpDo4^rbe|f{?|yr0@jeLn}NL_tKG?As_}9Dz5F2R&~WABY_De z%_bW%(=U%Ol2p&r4UJn7lBpvf%#~Eclm~ zm;e1~n*N>;Lf709m#mn(3g;3gX$xH{pE!h8;H$sif+K$tb6*tUCaw}YItbo=3?hOo zl%BMlO|86hRad2+plaT3V)L?Z(LAi3974e2@sxlXRuZA>99zDB9}bf*Jwt*gPmz>} z=Vz2*Aoc^ABB6_L$bQP%XY5yg6*=r!uU3?y@pbT#n87q9WCQLv+jPGeuuFm5vs zRBtIxA^3DG!qkGd)hhF4vCO-%vaeLlnO0~-QneQ_4%L`Bn=S%Vf}46(_r_A0HMU@m zEbmJyp4=Qm+cL38_0q?wjLo+ObCFX4Bqj84fLuK1H+6oRtxNtC1X0Dxgrr2UN+gXv zoftOlDLNABDKk}H`&f;}n*UF!!l=fyITJSu%+#GgJ;BKAQSSv_ITm%T7Ra+TbfsQS z1_yDov`cfgP6jpt8{k}EZN?+ukqMo&YaMGdv?Huk;AVQRROPYFr)sOiL$l?G61h$j z>n9^;!x{-f9!I(-SHz$DO0bXo&?^u({KkfvzbyFwbv~XxeL6gT{P>S;x7&Xa^z9g< zw8GcLG}|7?En4KMVt<3WCthfrsUs%~_Kj`d;(OW)&Mj;8xgvk_K5pK3YZUVd!HzDF zr%n@#;pI8D&%6V$>Qmn+cEKRJIo50)+zq~vTdlDN7li$U^}S!S%^HcpC&=D$?DE;~ zp@8w9K%P7oU^S4x|NAJ9&XF&Cg=s$#zy1#U@BbA21ol%u#noT? ztEBCO1>sBvwz?-CoW&t&MVStBF>eC6Qt|nyMvCrIqgB--)=UqCROx%OLt_oI#$5j2 zmaQt>2wQjRr_`7hofX%;1y)oP_&hc-9Y)jwUF;cRWE>AjG5WA# zEF+OX5uKZg4>F-D&5=fpdUO23EbC#%ct)nvSkXe&6!@Ry>Bz@k|TdxMA(pK zcGYcb{9>M;Uqs{cQSXR*NjZS=ORS9JE0c9Q6bTKkbBbGCL z>KszZBf>z}bznVt8a=%X$M?0m&HDPDn0T!R#f!nQTax{S_kaa*k+te()s zjysl?Yg@!syc5PmbULTG`Z{S9Qbot<2ZX*hz*P4QQcosUPY`hd-!!AWxM0DFxtd!f z5Q6I$qB+c0La4A=MEgYS6O)$Qhxl^3|1DDRyPWfnZ@1fj>To!`UP|fA)I}r<`-5e{ zUs4*6#j@J!o`6YC6@8QC=i~+rN9+dm9Gi(S`w1J* z!Ar}g0w7B@Z-_^#V~C3-un}SpLvYU#{CAL;h|yUNq5%^n#5MNX2Cla7;2gU?AnO$} z6?A*$O(Y6o*ueUnxV}UmY|yX0hrRlM@q53A{eSfrVZX!5#NpE);n^21*^DFUuw&i3 z)2PhYd39?vkN*>3)Ib*+RI<#vYGLQG+5mXLOjJx;jxfY*uUnlNTd{6_lEFf~ZDp?+ z1r9Ag7-l+SgBeQwF9(>kR3TMk={Ib?X5-dC6!(>B6Fn8l_CK#g=|$*L!ltSICdaS4 zlGH7iGs^z3_2MQ%=o5LIfWT@P2*H@L!j||cNEKk$vH^^$7Iz<~ z5vz=<`GDdlrKTXSdIqfx(JD))m@rmr<}JonU@zj=)0WR54B1Z$WAH7?g~7@qlNi@1 zXSIP!Wk)r*uW1582sL7pS(xV*pH9`4AW$-^%{j%C)j@s76*zRlF926B%lmJEf?rCx zx7}|4{t&`jsv4RYDJ-%0itkAXi|8V`u^cnCO3N&ZNx*L4?l%hQd^2&L`kKnNDa+>^ zrr;x?Eqrp87Rq;h+$iX`{(bxJB4K7BaAH@`IP2{V+ob(0_Xc)cb47gOcSUc!v0G@Y z5sMIl`i!bdyf~-i2^rR8!I!;NEF*o7^_`2U9^7X?-bX7mImi3Dh%9VHOLfNrml&wPTXf6tGwD?2Wp z?AgBc5r#*v!tdX+`>%eQ{o}_BcJOfTlt>|Z*m{NPVib1Mhy?+yW@0xO89rgRVm!p? z(;MPZl_HFCTzb#DlEs2G0wFp@aK??)Rj6qJ85A>2YR>S2)nXOr5j_T>Sj~!UR>`5> zf4RlvY0!j;i0X_>KlfX5|d6?c2-&dH(jfz zr9gDs0r3DEt=1r0&8#qIWU230P={nZzd+|jZMLHeW)x@g9DRG7cb{?I{Ai6oU)8zl zzB&G%pT;&AD_p}MRY14LP2koR=Y3ggI}LgYCbKczaZOwO@i~UKjADfCo_;u^8xmO* zdH0Ex|HpsvmGmQj_s{c@kG`z#|4kSCX`1Be)2F|0zumoJMOpQOTOX7ovt};Dl^VS) zh+ZJ8HhhLij;3n5D2VY^A$4|$d#M~LoXnH^a|>Br6y!>OYl_ZgvsnIIs73e`)N`AX zNzvz)zfDgtJ9I7^%5o|SM>bPi?Aqe82*K|4(#6&?yT`!~ou8Cr@CtC^x*El}b? z9hQV7iL3=ZKc_Re_x*nxSmg2F_$4+EFUa@T?B9PCdE+BYAAEpxk=6NYgwK92oSz{- z_Y3Sk{5ri%gvsB`yK(@Dv%Vp#(pO%_#;wI@E{PT*lV%bfS{0nu3SJ1+m%lmj2$95? zGug2<;%qs9bMNJ7;+1N^`az6rnMvH%S7wS}HC$`(0}F@Ada6`z=I*uz8|-*mYuCEv z0T2SQR2v2{B!HB$LMRgcx3pHLb&{(*}cu+dlrd$hL z2y;He8HrK_ckP6fLvS4fLPtWyBS_ooUgt*cC%1L%*mr)kvfeYQuTs|YPo000*Is${ zvb6seDEN;bKmO>|)zzOc)q6`G{cVhXiI>YP3$Mjjd9KLbF0i*3q$hFq6N}RuESVGL zUAN(yQ$Kf#$NyX!*8*y~X&Z5R2Qe=<+i9aRm}a=i!V$u$%eRIRTXO=f$x=oOpLLI# zwqF!+2u(sHrrJadR0V6ERWZzReAXLY`GL=|8wOG_-udP?dGxz~7rQ}t&__P_`M<{5 ztFI6~^-+c&{9d+iKBE5%e}(;fUuR#gh-7jSx}0a!E*j)jK=v+(iqX@?MlIEK(pef- zO5L$EC9XGnXY^1PsaiSb9z7VFiCPuwX+`cz#nD^2PB;XT7G`rt%=I6tXMjUhMSBQuDCyCvmiwD7DpT ziw6{)y>RB&Ba79M`hq%D$SN#|k&3IArG~(CD518T9mZ3PL)A-67>8ioQ&`paYFFUF z0ZTkHpJcmzqscxY3d?Zy@;Ds zbAR#!_@ROt&7=$H#<(eyqi$W8f-N?lU6lwZ3wP_nbhWUY=&XcB$)RrQdjZi#;g6Q z9Y|?lwLW*To(eJ*(XYRE(LdcL-e!7P-v1ja_+S0%S07znUHz#T=qSNk5g-di)MJc^4KNF4VcSJ2(dN5Sb+s)iXbWS z;MG^z9S)=r7*-qXQ<1|T`U7mQKH!_N=i{ILG{eI;Ic$1XzklM%PyUyHGOBSF&(Kv* z-WR$kWXYTrBU2XMNOk%QQm0bf0AQY4V+A~HF$Xrs#xT<~TN7`YuwAtZXvSxQhnLKQWI3UwJrJLFU?7z7x}?16(d*{ZM4r#i8l zy5Zaz%BtEn8^##nS;@RQ-=&*sbSCVj%v8@%2a6kFMTm#C(;Pi3v?t6wtXJa(34!VA zir9C^`I<3UNWtC;tN0Lj_horM-SmGWKjiZA^6hDw{^=0HpHkJ=r)hewI4_+mPtg-^ z7yH`<^we#fqDtOw0FM8c=Q#Mci}>x^eGz~ERHHf7P)@;2H=H?}jq?J=vEu(}F3-VF z4#|ki@}*si#gy9qU%C8q!t2aZvN;sK?E5*5|iR#(MP2^{uU^uxg6dP^TWax}+{ z?>|7k_Y+JX`55>Au|G=w)LZ1U4bygFzwX(+dY|F!oI~tcf8wLCI^(+Qkoyn0c<_iT z6ssAgvM5@u_$xl`7LG2D%Y?!}gUN0|W;5s93&^Tw>9z^nzqbjId_xzv}zx0u~)ELEHJGOrm-$uS2!#a=aYsl)Wy{6AY=)2#hops*-?v8f-)3i zg>hCO2mfzv(Oo-f(TEN)wm8zZ?3N1Q>YRrxvqkj{s&hU0j=MemYCuwCH;oX3*lzzC zUg*cdP2hRW+4T=u_5>AY4aAuX)E!BTLMxS8qh&wltP6&Z}!46}|YoGiCn;-q7 z$Yx-iVCrEVH^kivx;0N9zQ%gD)dx>_dUcJB*93D+{JKU~J6ht-H7RzW z##nOQu>?18BZ3rSJNeyWQ|WAhd|bkIp`Hx1d9d4}F}iXz8gmY=1-a>cWaet_I>n3L zWb%}DGN^$g76MY#PgzpSvP44iz@28FC&IjY@Sm${Un_GV57isWRA-^mGQVpk@3!o5 zIZo$VcN;pxqjn5%S%}E?!8asDj}JEkSE4+|P$Jhs=?oqibioz9U1e5Xpj;>n)t=hs zV3P$Iq2gtMrm(Jr3Y4Q&;myf3ni7e8Fzx7*aJ|1~vtIk6_j-?f>+yR0YoGsY|G6Ld zsh8#bH?iQG*(+C9SO4N}xBG`nDHo-bC?d1vaWSnH2;n&vioeUb!Of+aH`M}moa}i{ z^?Dn>KRHcfCux;;oi0S~J~5nP?L4=1J)!J<5e&4XbuOWwqX&<95xH@{^4#N@Z?jGB z92daB!VFo6u+TbigYK#G!p{pAW*qv2#16K5SA>dkc6P>A3cD$zZ@$4Q8{=+Ee*Bbp zzUISnz<%%t2%q=_<^6ZqkH*tayv=K${o5#yKjdsBeE1*#MfSlMpS*{a>4@DUZY!a# zla)oFO0WfWb-uR2tFKflXZsy$(buKHSv4QCg+ZEB=&E7%O|EN;1!-*5K|L0&C6lLA z=p>2MG%uMSgM~Q5RHF9${-_r6T%Rnf83Aq%r))KoD@(_Y^}Vu&j<2Z}`)ISs%L{Kf zGJY3fLjFgoxwK+ZSxv?c;S%FRgZBmY6t2|6O&$=qD0)Ltt<^M6OxTKBD|8jcSyebU zEvEPey-{tQkIk8yP<%8pi~<|$I7^A^J}!ns#jdYXzu&!SW+Eal?U8?z3jQ#T}SMyXQPPcS!vw9?-R>n&+fvW~^ zAqI${PWbIyZ&)eBZo_`RC9Tf5*36J1NqgeBWlhii-hfUckIv56uh#6#fmdIDi}8=W zNx9y#`_*41Xyp9ieV)Gel()a{hj{Y%8{GTvos%!0aQr7K-I(*zi}=(l=2i)PNH9(F zeV%0U%+8&D8qun!Gn*hoq1D$rv|@z;j}gLUEVmiC;eqZdeL%tNzuH^U2}Q# zURqGJU=~|8y>P^9m$8t+@M3OwI#oE@(Hh4SK~^P7VCZ{~CLAY^4iupUOZHbjPdpCo@$%GA$pTGh^XgNt1WVg z8>n*(smFv#lzl$XF`<&!g$VmCtIdjQ>$q6o>sRl-o9*fQ!h_ddR`}oOf-fQu&FmlF z@Asd}ImZ?}9u`IMlrPO)OWNZx{pROl49_j+Zl3~fPyRQG?Fo40MhLl{cFTMbq;r=j zYx&q_`{ff;{fn%iPuVuywL_R6e+zxl=b1`2N5}b;Cqd>@(|kMi`nAT=;JBRgjp)ht z*t@PfGOa?*BvnHr4#yNvGjjZSMJO2&!MEZD-t7r^oJwuszZz??c#77xF z@)4$Qe3SK`{SP?oJ|JmNE}2~#c_4{01w;lS6NKRQ8z@D~jWb-T_^}tvSgj7U)$4gS zjEkS~V070i#Lb$r+d2Jlu@JwD$s?7?Gc%*A>a}IawwL45f=%nRe$-&xq%XEpf!=~{ z8tW)X@Dqx*Q=rWB-FE7mwH-54>lhB7B{LdaiSePhG0kH$J^;ELAn2SoFyc;}J&=@| zQtRCNh%p9d`D`rERd!jd>1Vmxy+tbgWv_RJ99*DJ#l>O_EPtDAzq$1PI>;E3VONgL~u&%b>o!4T>&yuZBr`O zei`H*7&+o?=d8JkB^2%rO+3uQb|YR)i{JP>;rko)&hlxdodG~Jkp zANe@zY}ngx@vFb^WxoGMe~eL$54U^LpZkv)#?dK-dE{w;o{VaS&>?!XQ5L{N=ftF@ zwDv{4IPg+4VCSF|akDn9&YehgF5RpsyFKLMhHiLxxQa7wy2TzvtGOF?Yy^ILM~|N6 z{>o2Q?lr`7h5T6P1IOYG$0$adF?1s;Hikx^5;%E ztPe;QhG9bw$Ad3)NwO%J_2(cf_Id_gmLQ6u_JrvLe|hr8*m%g5zAjdJuK zs)gyfg)wf|(8q!4FrF;_?ayJon(wES%7ls0?F7`Y?SVod_5+g|tJOf7CakE_?Jn-2 z2e`Byn}-j1y!#ux^HV>?NB+c*)BiL7EYCjvHrM~wzX$LA8k?{})dNx{o7iZs2(iq| zTxxM^q1bL3rbqm|8k;#|i+N=`Pu~)-p(pQmkd-JkEvoJWf>qPHAW(`E5}Lj8!XRum z5R;>qPirv8;(T1LHak0I{CjzyK=lvY3WYCW|aVeaKC&IEP_ z*&{d{*(}GS?JnCdz&@% zqKW<#UGr2k`A!_s&D=+{D1!s%sp;Iw|=)CsNK_VYOab<(e1K`BIHA8O$* zZhlt^VZ9-$hk=kf`o5#jg>sm%Y?OO}aoQ2y+cAFj;~c*5D!Z^}|BZL(Kk{+Te(WE{ zKJh8+|Mvf8`n8`Ye)ujs1&skIg`r!y9dmIVfz^|sF6<=|VWvS+leUsA?0}()qkyjS zP?ut4aYd_JD0p#>!PBd3nyOu~9itmVz;ZbjR-nRNu=26N2+9%qUqH%OO@8K}K> zjq2d(XM=(VyHGjr)X6CGd>M`zSkedxfzU?yef7 zrFwf>;hiFIkKk^h=KefuptIntD}wKi7RQ^wF|T$BSCy)a_8pyDYhZ!0-$Cq%XDecr zMQ^wJayU!hyx6Q>I%WQ575tp@n}@^UjcJ;Wf}oZ?TMg2R=?&`Gsi`(B#MCX2`EF!|dP^(lLZ+v2GgW$G?(@2(xfUBCP7$JrLIC+VQZEtYfr zTG4s>U0$D%;&UgKl+yhBEFWuIo<|Y#vdGtF(bcc#K@nAS3JmL>ahwo?95SqX(zGG1 z1dSbi5kB*${xs9mr%ZhyjhE!^oQFU7!(9GLuOt7_pJV&~{C`n)A8=0-bUkAk>+1lb zKwZD!NVHt$5-%Z~W3H1gcpDs3bF+|sKyxOSLNfChLP=022aSS2N|b4;VdB*aIYv^~ zp@(t4Ph;U{bZoPAg?f}pO>;_s5GA^8b<;((+}-)qa9kX;@WLPhAu^RR2jb|hH@?oJ z)X`>ITjE>lc*l&dQ@EsKXUb*e?60gHP^yW9HL9v#%C*6@DCb)DAJsV`nw#D2gRv^! z^b{DYDmma7eyrCev`R1!aP^9bake@q2W2V~*@R8ECJwz=pVs6|-gVc|s52rnRw&2RENuaK4DPcw^#he)+e@o+=A$-tcz`q8fweRAF6W)!#|cy~_t^ z`Ss=f+~w!E+jS5xD)Loy1H*o$?Kc$P={cwT$7IzGVyQpx*QX zy1|sHnZF^pw@L^ekP>>Ji*!1WuO>!WbMN92>D9N`Kl_mTv1gYGlu z#O51HliC|XJSeEm_Jw9w&>F=NGOBqsDDbKp_kmv%xU{Kykos@ZBdpqKw?$Z*p}{fw z`zEZ-I78R~Ydj6BufKIWMKy@375gw-BG<+o9Kdo$S|NzXM}{CwIis$Oqo{JQ$a=Mk zsSDr3)%HHVet7wD>m&Y|Kl5jP-EPdxUfJz-|LT6f|6Q6($T?R&cf+kKv{Q@yslwHk zez&J*sWR*tQV0!(v6HaFT_UGekkYLMb({O5xzzs-MpL^+?K;f#*gC022^GhnnZz#?--TMLFy}PoOe&VhDu3$Hoy< zpJU+ACU6PWq)ry_jt?vvWS+j`!ZqG#YGRv>C-l~T*{ZceRU-SJ$MBqh(8-arGus!; z;=91Pd6>#K#Q3^7Yd%Rr#066i4bIHzqn*{@c7qGxbrP`_`Bn5K?Yde(7qK}hEY*D5 zp$5UoVrGj7W`SZ_PfZY{wrw>uMGr0)VZC0{4J#}r0akLo|7HHtU;TyfWB<@gXy-So z;H#>L$UpS#*^@uL-|x-blE;9QSQl=N3x;s_^7l52W|@AqT-4q!yy0XB3orE3Z(q+j---7x zSwOc7|8l{#gtwLxeY2xo+Ebi*{HOL1%)D{O=}nas6EVbD!_cMl9D8R82gMi(G11I^ zLX0z%WYmE`0(3nVpzC@f13L7?>gl4W8;WIR*sS1uVD;u}44?TN_Nm`RJ|CF&d+hQl z8idVjZ-Wj<&SXY9iEby{GH}HqiG*OofV}d6e0fcnGR534-eMwJc6L$UA;W;|c7$@I zL`S6gm(4jcrDI6)-mAlkSM;{Y?KTt%mC|DF?3WN|P z7g;l`UKv&oKF>G5@=gBGAADKmedV>(-r-h7S2 zH{Pd=9zAlX5M(L^ED-xZSgqk|iaMqsiUiViWP%JBy^&t$afJ*48Nm~q@O z<;m@o)QD*yc0x?jORzt9*kAsu-7oy||0=*QzAW><0R`X8hMe>F<(yZo05mA(6hv~8 z$1TV2)1#S7Ee7+e*}tN8XCXX^MH@Gisj8<{vUlO+%fcQOiBqSbo&P#6nJ;LdH%=0# zl)ZQP^L)EveS3%S9OQBb3+b-kp`AwBZI)7QgvMJ{jW+88V17fJ8CDrRO|+$|l_zf= zff$rfiWjQj#Zfgf1|h6htg~Wc_W1LA_t{?*HqV6XAN&D^@A(90=jq1iqZ=3Ka7>}zL4^j=$D(^nj41u61XBW;`zYqx{GU3oh_@kG(RA%iEbefW4BP77pB8@liz#ij|?fL>3{RD z{m;Aq^}qbfFH8NeGo<Z%otlr+2&U$EInLBQqm9L}PbT2;1ZnBs>@Ccbok(e_ic4 zEc|v;x$&pmhFIh%Hj-mxVw*6-EePl?_~iCuThcP`Dwf}_N!$UMJ@@_3g{0ikr0xoW zxjj|iW+I(BiQJ``crL^D#C_dI=P2 z5<$Ua?;@zw!~F~F;)08dN66*@@%4`qKKohnFTYE<`jF0)gD53R&3E;p8oC}yiJ&7| z3}QmoYo^^bA(sWerRLY#v4n=onAbX>C`Ji^Z0;pbW2L~Xd~Lj(vhenAd)Oqw^Mz+Y zogS~x!hEa=sY-PSEmaRNRF}{qzKe*9_nAM^P;-%G&PE7C%o2~Ia#>wLJru`___+w{ zx&RjQTwh<#!nv6XvjS`k`ry;~%5SxvRQz-_NTiDcQ9N%Uo6@&QKR6s5h>(0~UMP%Z za!fyVh|~>$)hvaQ*{oJ6h5i$9eec}*^qG#8lZB zGqSL?ZOhoZ?11lri)DkikHlgQw(-U?R_j16bT}VB3#0{2Q^Z+J-YERD9f4%ZIm&Bl zyl=1vw&vNkLoNQ1BdjAWBGQg0n^0k&DS{M-phlD=?xlk%mlP(QScRT-J>?WF?mZ+` z(_o6Kt8fjYj|1J%qXcp;uF^JxE@CmTiYr!cezf1);qOU<{!oIy^s?OlIu?9YJwF@{ z>v0_CG$${N$=}FDpJU1_r{Wmn4AZ!y=838C1YUiLJAWJQXbzprug^HSw5dPLbWE*+ zpi|TAsdTPy$Ktt*t#itg=S8s4i{O4KO<8oxjz||^)%B1SD`m!gJR*@f-Aaxgoru&x zL33C&+0i9)#EZRJVIZ&lEfZfZ|QaFhpa0zt)(@y5krIZ#zXG_Crm;I%7QS zk;|*s^zr+DgeTwnX&$_xFAM&!)9r}J_vM^lZ*T6~G`;22znrMOxHT2sB8E-1x)t6$ z9kk+XR-QX4%=quEg4UF#r!r~P^hVQZg?t>#jmEHqB<28dUL<^q_3OGI11`VUZitqe z-STo`|8^D(w@(9iMMAy^$3JyncfnAnzJAKoZMk&5E5U4O6+M5wF-jK8=OvsK8hgu( zEJDdsorHt`ok;9D7kfp+O6F|Ule@(Ja>wT017tdIh(?qFJDcb`qYH4h{}@-_`+dCo zpZ;ZDdE)`&SHDgfdiqx%kiYRR;b(sV$&a}Xfxg-i7rZE1@j|79ITN;MnK68ui>zB9 zsJMM_6Be~&fQZ8)QW3}(&#sd4j2gIMw6Z%ea&OzodMgV*A`aY20PMaF?L%+ZF5E z@YG#a6b)jz{rjKd+@CsGv=XH!u6wKzjmxEdvj|3yI~G@yrW#$S^r>$Tl+g8*s1#Lp z5uTr*@nxX{0V|7T?y3#$7g2^RsPR0JVxtc(@z}FTbLaxhTjH)NE0NfbJ9g9 zTFBY&r<3R+t>Q~^t!(uWoRM?febq1!vl-WKf~iu|&SHgpnouh&ARvG4jeF|FS_3=) z9uerHkh8K~L?E{3k~+n=6WAU&S7l3!PxRfwuBBqd$fTLhl)=Jm%V6T1eKjMSM?1FP zKZH>C9*NZuPzpsSAdylc5a@D0eZEwPsk=j0UMAixtQcQiD^J$!VJ2Q@U4X)=L3QJY5(@-^W6{q-oN^C!vFQ^95Jey=@F(l?F-)~_>IW%JVbF8btM zc>VHJaN8s3c5}E5vAt;5a4Jt=NlCq(;C0)O?)KmBVkn(zFn2BF+pA&;huv;UOI^SW z#{n7?$ps6BWFbZ*WbW`(dUV0zxEB%`hxJe2iQOQ4|4s}e+Bu< zmr2u({kOiwPK9WNIA)|14u_GD1hF2`QkRc4ch;KLEY#qWYQ4OGS;}J38Gx(>4S~{L zCyU8i5T*cGGgHZomWc$`G1YM0;?Soa1I&ZdgKoHL7W{R+OvCCh4v0fYz^0x+#yPYc z))rhv8;l;eh>jY0O$!lYFfaD0HnYh*12^HifVeo}*dk9L5XqJ?1tZs(%ZTL(6+>$3 zRUhK~8i_GtL1s_?fu1l3;Zm5o%gy?ye(}GX|K1P&FX^pE%htcK5{r5UR^>l zZ3%k2KzhjdktK61oHmC-xA=+Mn6JzhwsL2IQ8o8a`8KYPr@nRyfJe+fx_C$!Pqjd6J!r(8w96PM3Z*4TGBlrCc# zS)2lwzr!?5b3lvlU&b4IgqghpgjDT2NW9-7&h_<) z!#<%wSkj^r-Q`m7*u+tkWH>ETJ$OBZSa$-2T>MYLdHtOUQ}yS!WjATp-I`nGa=&o& z*lCB*Acl$&)ZH)7OffMsf%~Q;lwFNO>?y1OkxVbpnX;0=1>Sg|na5GXWn?b${%-ey zCsul>^X-*@5=nFdLCvpaaGQse5{Eod%ASxrCIZs+^by#sL5*qMpIX+O`*4^>67`f!gFq#wamcJl)rANR0mj8SK@CQ;mWz;_vSYOX~wAmjz`C#oLwQkgxW4m{L_tjN(a!GKY- z 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 K + + + + + + + \ No newline at end of file diff --git a/public/mstile-150x150.png b/public/mstile-150x150.png new file mode 100644 index 0000000000000000000000000000000000000000..a001008d6ef85039c152cf0f4c927028de8ef0a4 GIT binary patch literal 3170 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 + + + +Created by potrace 1.14, written by Peter Selinger 2001-2017 + + + + + diff --git a/public/splash_screens/10.2__iPad_landscape.png b/public/splash_screens/10.2__iPad_landscape.png new file mode 100644 index 0000000000000000000000000000000000000000..62d541fc7f2c78a8828b1a6366bacef494186a01 GIT binary patch literal 87928 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 literal 0 HcmV?d00001 diff --git a/public/splash_screens/10.5__iPad_Air_landscape.png b/public/splash_screens/10.5__iPad_Air_landscape.png new file mode 100644 index 0000000000000000000000000000000000000000..f8001cf31a05c494fc86a25fdbcebf7f655c6741 GIT binary patch literal 92537 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 literal 0 HcmV?d00001 diff --git a/public/splash_screens/10.5__iPad_Air_portrait.png b/public/splash_screens/10.5__iPad_Air_portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..c6750e7add5289be04937e402f7d99cae8789504 GIT binary patch literal 93780 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 literal 0 HcmV?d00001 diff --git a/public/splash_screens/10.9__iPad_Air_landscape.png b/public/splash_screens/10.9__iPad_Air_landscape.png new file mode 100644 index 0000000000000000000000000000000000000000..03a44384562d8fee231fc24d1d2782b26f347605 GIT binary patch literal 97487 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 literal 0 HcmV?d00001 diff --git a/public/splash_screens/10.9__iPad_Air_portrait.png b/public/splash_screens/10.9__iPad_Air_portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..d7c068b2116b48adb2241a9556d8ac619c586b55 GIT binary patch literal 98681 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 literal 0 HcmV?d00001 diff --git a/public/splash_screens/11__iPad_Pro__10.5__iPad_Pro_landscape.png b/public/splash_screens/11__iPad_Pro__10.5__iPad_Pro_landscape.png new file mode 100644 index 0000000000000000000000000000000000000000..c2e02978d05709796247f99a840bbd4451faa4fe GIT binary patch literal 99123 zcmeFacT`ka(=ILu3K&2U5RhOZDMd?{%f&talpmlPsrf%0hbTBd^ju;BbM%1r8U7a5%ic;R1&X94-#waCm{k1r8TDTpYsT@B)Vm94>IUIE2ID1r8TD zT;OnV2#3Q994>IUz~SN$4u=>2hj1Y|7uEUivjBhF=Knu*58UVehhr4D_~N(?$8Cp{ zc6foq1r8TDTpYsT@B)Vm94>IUIE2ID1r8TDT;OnV2#3Q994>IUz~SN$4u=;wT;Onl z!^I&S4li)Hz~KUii$gdZUf^(n!vzi(hj2K&z~KUi3mh&E;c$3?!vzi({}D{_hd-f=%LiOO;PT-R1%JQ5X&;>S`4b?xeE5GpAA~lS4w~9a+sU_Q z=Gv3GV_w=?e77a|dhyD=3&%ON@QE&69!q9POq~C2YH#L{o@|N=%senmFP!$tjJnp~ z{jgz=NQ@B%dq_~?d-nQ8z6Xp1?>Z$N1m@&QJNmj^^%NLw<>G91OUmU!DQj(FXV#qD zL}vCMjcm9PUBUBWOaI&H(!X;O#^QB_QNfVnfAC{gnB;v+K!C`={|~1&u|NNvCoB|> zZTt^6f}JHx&HW$$q!m6sT*V8k-u|Z>Ny6fr+5Y>V>iPvuMq(mmb;AGAPkRyIg8WAs z;DUUZjkrwyjYJ$>{H8k`C;#SE99`h(;x|hi3Kbk(;OOEHQE}KU;phTK7dW~&gu_2w z;M4_9UHro@P2-x8-@JiS7dUl+Qx}I~`=2gwbn)NPg?;-N&%e(C9I7(N1#awlh%(%4 z`8UdNv*q7I_y@QF{$VY~(FKk!ezU}(hR4wbjxK(;w7*+^99`h(0!J5z)$^Y&aOwg_ z7m$wZUrB;%Mt<|g|G(_&dv*n|(n;f*zBoA0Da7 zEm0SLyZ1{4MUj!En&P)fKp_sBBV6t5(bRk1bfi}h9lt(of_X7B>(4i%)%!(OtGWl* zW3MC>k^gSw!N+xHjo#B>-GhPgtz7K*JNiK6?MDUa$C#B2t$>ryR`H#}OfQM%OQj+wS6rV%Q}De4EFSUluF{Re z^7ZQ?;vMX=hbjDWZc*GKUy{5NImQ|ddvqfr>YzbMNe{#da_3%hvQ)%~jNLDv4`I$r z)kvCb?JLz54%;Ij%GYJ|Mnv!TyPG;-y*q}IEESnwya)YMFZ&bQLkIRJ%0$4;nHbWe zM0McLdvE;KUzktvLV~kVaLZ(YOMg1#C2)dBsn==OnHlydnc%{S+e)iT(h!FU1}`xx z^irx&UH$WYc=&W@8{?K|9N(YTD?0^lD|h8*-Fn(S9IEp!`MuhcYA7LnmjllXzkMPgVS3!!zm*T4% zbT#hZQg!$uaQROMy#zqU^y)P`Ux8SW#M@=N$TnpO0wQJUYF2n}REh;8KjT$EYg<55 zWJLUD_~Osve^CxSpU6Z+mg)tg9OL+lrd8b^;;{lho)@AyQ28#@D(l6Oz=se8(Yfc*2MYR_~_WU{(r!q$mZRp?Z&q2(Eq#`Zfg`aL=y+ zQXirBH1-m|dC6>hXj@>}bA*_TB^!3x?B4XtzgABxOhI2M2;M&!s8s{C3gCg;S{RTp zf!mf57(Bj4h_wuXU`pOqcS|l%hU$~Ap{$v0=%~g=?}58 zU3_btcEbxH)v8Di-1yleD){G$fjc)}1n+yppY{&&K2zpSU%ndUH#}*>v%E5%uq49O zIJ>HaQ2Lx{NF?L&!GcnpPoRWaHSpEL?k5JnNwOAz7raWR#V0W3O+_5gA34n4 zU%+{Mf=HRdMFauOuPBm9CpM2!o$fKS4}hOe+{_g>aGzoqH9mFr&$q*z2ni6)f`XwC zLW6}8GBIq-I3n1B)GP^zdbD7sh0`bE-5>#F$prxoPD#84u>$CDz}<|qZSV<@mqD20 z)aTzr0wZ-5gbQKC8V0eNUSyPk`*WMUJK|M(!r)9K!+xoy7Ydr>5g<}^(f$Z%q_Xe> zeZ?_nLkY2fvT;Nxq4`&;m@@vz@!&n5O9}P%CGhs@g{XH>>lgf7WeWPNKJW}bMeynO zjCmnX;|co+c!h-bblsou_Jm~;GRY^e79k5p@Y(<;31Se`vcK7H@skFi;CCdw#4yR= zEaV4G1`XodF$k53J`RwsBb0Aba!*1K1&dbz&U(}MJcc+EzlkpfFVMw10)mREF0bzP zL#xX|kcMWqh%(2@O|D&4~0tzdjtEdO@;$me~Har9I#S^B7 z2@DU3H+EnM5T?TJASf_!4)-+Vk4L=50m)JrQ?fydE~cg^|Es2WdXgg+en;=uW3aph zY3=pu<2gw3q-MinQ<`5QkYz^%m|^jK_<=I9h`tl?PLNlzM1%K^i6<~Ztf`5x#4g{~ zwOHhBXJO#z4_U911dx!CF)Ew`RF@zlMhA(Nf+b#xQm+fDl=&ZX)B6m_%~qCkVt-@+ z9)1BR!ibG+UU^_;Rvy5<(FJg$@m8^`&>I;8tAM=jGO+$^{2RrQfHU0ics&+xNUTgb zfOTTbECyIFDi{)DEtnT(!ET;Rf~*NF5b%wukZa~YFW4m@0w_#qOrZ<5O9B?mVG{)2 z6L$Tr9u`6g{D1<0zn4sX0r3ub4Oo|V=3{{sA8ro`5dqOTage%Pi3-pP-lGAmeG~mc zAZXEluX$GBiTrp@ghHPv20Rf`$gKiAQT1i?|1h0$K%xZtWZQv6c?k=>iuFi@05)u$ zT<@U^%Zpjqm7fK2;90!bu*;AiW{p0Xq(avS$quZe1M|@!3MH^t*oWF#{D2=1nLeI| zCTtO~R?K9(04veoGw3|Xl`jEe7oizs2CN!Ex@*AtOziJ8ib>UW4rS;Q*I0yaw#VB zp%AMd26EpAQlE+wtaA0Pj?`JLA=oFzc{+law<^g-T{cG?=Q>9k(R`fvq2!oO93l9Dp^N^@$)kaU01y+3ahme)!N(<)Oiv6D@)&Y6XdTSEKK7<Hh%mdvLfFA=9nM4zVh$!cKoG&FdW?CX`#858})$ zWwSW1Ms;FlJ?5tYVyjev9#LvGls)d#Vd*FAvvmSKP_zmbHq^nM4RFWrJ9sr?x^|0C zG|;YH5%XH>r+yYXj2@qK<+q}@(+m3Rd5v|?rEFXind5@HZ|y51`o&MzYGW1!^`%39 zdF*H#)l>+9ks>VKlxbu5!|$75Jm2>M+T8mOJYbx-4+x3v%ekJ;J6?5bl=Yzum0T#4 zyk&s5&0g|;MAa6%)iYZbi_zVd?UB5#I@IMCbPKhaMERHsasTc0yMH_fxJ5E2qXMtn zT~(}mbW@R~Mpb@fe=pAHkv~eM>c&)Ayy~acSM+314^c!TdeiwfxI^dU1bQ_Dq^&TiRqINm}(z|^z^lWd6f+R`Qz7L^GtIF+KY^Gc=U|MjvZL-_375e47pS6iJx}f z*Zp8LpL-3=y-Y7AOJlLe97reGj*b*8_AtY+$HXj~H#uMrk@81Q8M;;`--}msZyU<# zwlJ)1>Bt80F^zlk+1H5*ue{h^9J$6V!u{|zE#aB%qkuwA-1!|VOkVv*3Q>U1uc#L6 zWO4W>t?e>1tT-(4Q`Nn5O0mu8eUVs`Gnd3XUe;j|pzX6MUZal|Fj^Lu1*y(UJfr^y zb6YWH*UELExE1m ztyqFv(7nj6U3tCoMU(X{%%_q*9vYD&UaX*m%HlO?VzI~&Sn@%+g<~-kvyr^a7UzpO zP|l0HYC@KJ4HmJYkADWM-fBR*FSz8m{S1Bbl2f(e=kOC}{Fo+Mxoq(`NGpkl&kHmg zqA9*W5)wQ@s<%5V+n(?F;9f%HUwO-IOnlGyz{{jSsuGXF%D=3e_3eiG^A%P!IPwA$oRf1 z1CzQf&Qx_9N9V_Py`(34M(Wyhke@{PZVOx>U36!2-~OKb&HBgHpdCSzI}9u@L7}`@ zA5ZlAqcAJ~7TjduDAcAv0EE*enLDRsNo)-VCKC^`w5=qyipJlm30OW1Q57f&G7PSx zO}uN>@kV0&O(tnw`wN%x?b_`o?bUO=8 zbIShC(-QQy$lCeYm9Ap_dCrOB9it4Kq!siNfv@Gh_X!i_OT_c&e%S0;LSQBCV|=+( z#5Y(0lpU{9fN;(IcrR?Z`F*?DNwtAWMTfp+Phcyes%s@@d!SIaZY!>W)BesMl2c*hlyel=si{_^)E$Kx3ElNX`-?omP_8vI3?m z4(R6h8$pCDXDr8EI))iEN5A#v?3JGJDg^6U5cBO66kXNI0A0y!Q*Kx>ivfAP*kiXy zNn#LO_oc)w$Gz_A3RSu&ZOW$oG`ELS-{jAg#Fc7)`C5m#;q!v0E6+}llV4kCO(JUj z>R+iVEPajAggOA?GD+k6)LBn(>mFx@$44$?0=T*9lcC`~C1ezC(prQG3 z4}@kD+L#lay90ZiNTj4tvqv=fSAxee61OnNp~C4b(j~B+Ig_Ru~ z5@N<@*1*g>Gc`Iz*kv*@pTC{ch=?28Y-ZL3?`Fg3C)5ib~*_qfYA#LEKQd zhhZVP`?650D6sCfl@rj-1XYyjJ<5tnkPPfGioC=Y7vi{?0aN~U|i zg7_P{z*9pEZhJ$Tq$d4&UrYYM0E1_Df5 zbMUn%QxvWt)yY)dC%<5HDkYoD2IX?rU6)^^Nn0p-wx&TmfxGRQQbz`Vj?vt}FO7E9 zSm$S@(gk|Kvkp%W4EHC!k3Zh(G!uhUeA^N$0JSUCisjXx1&83zdDL%5{`c&vr}Rx$ z276em=6T)QTYkmvkF+^r_|}4UT(Z3;@en|PH)Mi%h>mU;oP2Ydj}C#1878OVp!Lnp zs1y*f8g%L!?sfY@_swJSkx=n`)3!%d70)Ie|9SGj*BZ+K)0#lj^@_=aLqs|remCgg zqGIFZAyV>)S0Bjcg8D9a6lG(LvT=;Hvnwjv|M7vJbYhjUyB* z*UCR;0T|fDlvhHSFWwVa2`~7)gAi~0D}3hgqiGl4h7Ga46`i(JA5GX^MWm0f&1eZZ zNx@OZ_dTY@lC|$x1#*krAMMqrTB$h^wB}AAqm7 z^o|iyw#6_MMQ;rh&wX!6s7kq@hj6f76n14qEe^O$w3}D?z0mg&OG>cNVVPYpwrQyw-J|p4Lfs zbznGeJh4Tkmak8THcrS~*4D5sMQt_P+?}m&7<6Q!jwqC))9l8jAPw{TR8QO~{6`{p zAxq*3n**9$ith#?Bzs_2L8#dH`x5vH9?9u`=Xz%1YS=dOc%c0Lea@|y8&g3nuAqYN z&rg?4R8lbnzDV>L-9V{p4`W~zqKEMBP@~nBjg{GGprWUteH|!BAE?PUO6@{g_0UwJ zt|J~(EXT`up=7^(7o#7s6#oC#k3EQ2b;2hm1}UiIMUcxqBdBH}yVZhVz7hBR(T`nY zMSD@byzG4(!t9lW(^1>&)H4m=m-w&6Y>nwlj0mNfwj_V!FHTA7x6g?Jpy)N|9E5Jy z-T>B6Jtgsz`;7CttH*{llifiBYk zNLDm6gY~bBOpAb65iE=j59`t>b5k${wk=(Re7>XPN?5C4l0NS=`$$^(gUd84tDW;J zH8V>=$L)owjjss_qvqq>xK%biiVXqvh!zJ=NPzq$Z3v1RJ;zD!%**r=AyBBFRP`{W zk}=8WE98DeWKXIslbcxd0t9$f}-}JZJ4ktmAm^%;QHZJ`?ic*#Q|xgR{WU094)jVL|#g zLq#Iz%1&3@$}HJ=7DynlW|wg$RRs!A*ct$6+tAJxXudp&0e;SNXwPZmJ4GOY+_&m3 z32)e?2(SNoI#!1F=B=|1mS{Vnoxw1`!@~xjO-3?G=pw(~)4%jaKA<5ZOFfv@78x4% zHdNI9r&l9!Plz=@C;}X^ zfc0}fEYHF6oJm$Fp>a0esyzjAMKlJzqxSW$hW#n|{-O2pi4{&z-gIt%W?z-~QE}iQ zZm1reH`}_s%z##OT@C2vW}nZB-V>y4mM0RlcC}solr?l~l!B9PP;<_mm+usai^-22 z7Ob4W91buO)((W`^i2S*-slhV6)CVV!!Euu<}6er^8~F~f5Y5bxUGz-tt$t;$41F^ zmHffY!VBLhKzHRZT*f}{cOvXmEuV<9x$AiTnyHmyFTi=R*&aqXFZ*Mv`MsL(N_}bd zFj`{eP(wu|ls{-NT=S?=18O}>)Tr|Q(Ss?L9QKySbLICzlYyBmr$09F0SP1jkp>Xv zp1laA=wL2uA!+5=K=PNbj2!G5OiqN=i@J}eujEV}?Gj8+xlrAmx>_B4cjZSG^LSs% zvR}nz%jiyHnxd7iT+G;hfT-3-&w-KYeZovMf5kr8od()wYlVYGTGbPkNf zY)a0|6@A(giheITxSSlST07HG$r84C9jSJc)gyXX7*rJoOD8TJfpyahap&W#V&nWzNMOa{J2Wewh zKcEe*)76+E;M2yN1k-I%w0toxPOc`sp;peLUuT;ILRxP-yK=;i6kS8jtuWLU^69*p z2uzCu<#(}t&Ux(-LEip3lPaK?(u7Z4W;qjMzCtuPJDSjc(5?Pi>z`uY}!@4TuOjjoOzd@^Xi1)V{j zUDNQUHZl9@8^9fO9g7~^G_u08%N6X4?WN=2>lj{V$Dm7!*Y7g;$1d^5JTVbp<`x2V z!`$Px`_KIYOkL$3`-Gs5X$TlD=g}RdHtPt)s!frA`kHTED}bKHu>*^R5FEN?cgv%_ zyx8Q&>b8GxTwqd#zkvOX-kjGHD~;?QCN$;I9I-=a#Q^!6XfWkYjO^{DOAn8xKu=BR z`UYLoq~57gJ;2m4S_hG{qx-`hkI}&|;FhW$%i!pZAty9H{>yU}s1Os84z1|HqAM0U zc7|Gf&m=jb1gkFVA@{sgyx7> z2rvsc<e>f#WPJ6n&Tcq)@BRTBUBUQi==z4 zbFp+(aXVexLqS<_t|uS$>h5$@dtE-xd>3A1d2qj6s9Zi3fxPQs>;bxws6rjcD#iZ* z2~5cFb`=t`cqU-wrM6u&Hwvx;b)Z(3ozwqAd&MQn);WKNevEJbm@LnH9I%HLX?3ELDByXG95o-kffzj|r;ZiY>GJI@oddqIfsz zlE99)g$Li#9}|8|U6R5GedG!&=0wA9q_JIQ#K@F$Vz`1ZhC$IJDgqc3gk0a*=zaUgGOi(019Q9hj@##?1IcN~Rx3cbc5H|`@W|JW+428zUl5bda!@tb>_wmhVge0J)f8wU(Mj`I zdXDL3_v?@y^fD5&l(P_{#{BV?M#9g3!cZMD@^Pp*5gpq8G`Pbe8j>!x${ z3i^CF{%vV^<%z4=T1<|yBRZgcxJ?j@gnRJ}ivHaA0Fh9_bg@w(4p=)0o1i`w^cU5t z>T;#& z;uBx7R&JkrS+<#$P})owCf8%rzO$rLQCjL4TY=tN^RU%9=o>jROdoRD^9Vi>Njo#m3B3bU zM#;M@bsgPVhMbzE&e{Oi1K0LEXXjo0+@S{%5lfLFh(cbvzA|HnISXA)wTv1xoJ+qE z-*xFCIXDOQrz^mzv9pW{6xSuE?;OD+AcOt>2je-f&ODZn8SQ11aCkkl^2xr&hPf*5g4J;?OO0G<8xrXQ zRod&(%9#dbJU{ry4+w4W)rMdxg?w~f;Z#*!8x}Tf5qu*>F=~646++bxjEb;g6GjPm zcWzVR0yJo_FTi=J2o>}$+#aw-kJ>tbSzj4Kn!jLItZf=}# z*JMM0qS!j2*xE7thSOWTj<=_^1(Qa5T+>=&iYC_%78}fq25$0LMxmpsQj$e4`LvxG z5j$&eiySfNwi7XuKD0>sIk@5VN_}_rc}vDAEF{;405=?wOfFd1@zn-y=M0sRu@wzG zjoW3r`R}s;&9Y5ByVU;qX|9n>pJsfxKJe=B_MbcL^eTU*nb=LMN*84B)QU4oE4q8B zGvIrZbA@$aY=n>mYrBEjIr>Dn?di=Y{YjP^sFLB*-Wo|b_h7wfm~1>-@{q&|R_d-? zg~hW~?lxKciD?j{$8bRX8TQv_OJ#qujD}{~CHb$5)vZQ=@tO~jk!8h_J6)->)N_g9~!f^&Yo#+3!cM*qlw&J?@1# zZ+^iLJ4A_?5G}B|h(TA%R~YXsSx$c*8QU$8gVHVC(~&I&$&*%7CAkJ-4_0oK`s~_H z8U>DI4`tSG&PQn~XN4OHCrQ+ID6%mtc^3>1->n$5n~Ojze@@qSnA~ux5fBZze}@s} zj-TLJe-B z-}4l(Ryv#N7k!NfD;A7o@gNvS{&Kv4?S?PWTNhuVbP8s=@YodNme`);+@xm7Hs8S} z<%*gE0qaDSHn&A*)7{H}dz&r%<(?-xIKmE=@TQWDn)LECbFNuE43QTp*l;j$nK)x! z;`o5C^uxqsUE;jgv-|u^Cz)yQL!%F4JO?uLfW<+u}v@HH64wF%RWxdn%!ruKY836oASBBK;5fXj4L?vNBO}xTnrBEvSn3y zi|VX}C-T+>&G#bU&62N2nv{<&U8E~{m^j+MsO&aRfe!U3$&$(BRL^LmXizuPYpjX{W<(;gBRP8ms1-tn&&6$n)s7!=e1xHZ-1n2PNtz5+$`Fiz_D>O=) zJt!E|-@wXD4`z;ke=+E?^U_^uEy-g2*+JZtU_HafDb0IcSa*AU8QjgvxlIl$5E&ex zJ8B*#PP-M(12>bVLK^qZht7~H-8YU<@td2XlyjSi?j7>z)t z$|3YLZ$LRBEFIp>uoj0O8WKev$`wkixN-W_Y;BBL0<6c_BPFVtX&HkD)U#meR>>AomYqkOEEpvqeD#zt!Z^FFhQY&*;Qw74^(_)G>4MMc^eCYzzE{JJ=DOAM~^l+%li z-QGJ2i#X3J0}gq9E7lwf)oS27BB6COXI=U2KWKO7F+b6s6EkPiWeUGMz@Xu`&h;^} z5OsaA%vwxWYhNmmj!)vG(r|hc(+85Txdnv=AN#_u_kC);G?1uZ^GP-WJxbUb8iXO0 z5yyMFI{V_PWy{t2yk3oH88!2Uo)=KT=;>*QDY=Eb=Uzeo@D_Z71~Hy6%yb(*+1%?- zA#Vb2!lx+CO)Sh_`Y5tkVXegwGn$>QT{N}njIS|7kh-eP59DJaik)OlYv5r?0$2Pc zr`uQX$V=xh%yx~iGq2k(-YQskcq3p-_4P}+5IBtsPqZ0l{oBHT12k+TjT~N3cRZ_o zfj{C`{Jf9nzU$u5=ruLx&`nsFTu%*s`uv6{FN}iWZ}L_J9ML!QzW!4A zuCpSd@0@5>T-(48(P35%{ck)O-42|y9?{#da6wD&bIGNudEHArEfnmaAS$uRv`p<* zJ>li?n_oY@Wj0h-v-@M8ei&&IN<76~uLefr=lMLRuz*Uo?EoUKkvu(qk?KiF3Xpw~Hi-T!x6?fp*zM%7J#r)vzSm5ie1omdEw6_!L%6 z0@fj;)7#VR^Uzb8@Yw9$x)bY<>qtNyArz9};*98iDRX|hvp{LLX2;F+X%&4imyD5h z6o%^8rlfiKTV5hA{Pn&?kdkti2KfszR8&=cflEeCZaODaX=jqor24HL%M*s?g_jzJ zKBR{eRIu#Z7}m9^C>UCxiHl8{X%08B!=$NoLZQzaFAGeX#@)K`HMCuG^&S^N$V~HB zKa-$YZ$FBtcMq@FT%x*MNicY<)OHprS)o}Z&F7*40s?p0>84?K>ccL0Kft%4lvf^N zGu|Wc4K%pQ?3YwCt`Z+&YQjMw8*dc~PK8Q#0cNF0{9&CSkt)Xr9=D5Bfk1Db_g`qx z$5)<{yl&2+nV`xZr=s&-Zj8o`$B~NzfB5dfZpN4=x;8Hi_2zSH(-k}t(6EpNG+^h5 zZ#1B_#(^6=*tIv2%J(Ug(YoEwNnd=XHHG&;3K$8EiN>%oU%iY-xpm6<)w<5`bvH#1 zSmr^DUwujl@>@n{-7PaVHCQ@uw76g^A%^SC)o>lL1V3yx31C4mdWa_g(-N;jWcU=a=ITxvPQGb1ATf$ zI_bJ-K$F^bE$SnHR6OFj;y}qNXTpd+_fEXa15k}-!&3@p#rAm7tWN^C0SbAK&2qfP zCWZq*U@M0IX<2-ECsT~f?hZVzP+NJws>pLSP!|8o{2J28!C$1}8BCLtUS&&R*|*^M znkNv<`&K*$st1wi591F=jA%x3K6~zjRRWbj+P@q~A17bL~5m5bfpo!YKa6z&{Ek}&dg#V1%#m}tEG0GcbCBnO(#^PTI z)p*Hred%Tz;^y&)au=DQ7QXdSvFT;n7o?eYlj~~Qv_%MNZn8mO=xc40vi|TnurkAV zeG*vG>_-Q{==OQ6>O=PVIcROzZO6QL4N?qdBdI-3Dp6=K%4~#t7p^-X^IpAhMt{G) zQRZXtT;=2Gka?D-$WI;-Rq8=<8Ora5&miBITXN$Cb)*kYi-Ue$C8k_SKBAfA0DSw$ z`?|tW>@;x4uow|`&ZymCTt68=VSmPf_nU!|z3D5=KtMWA1<@ILExn+*r(3WmTQ_D$ zOz=7#eCCn-gO3OUAEmrizl{+7`SsatDgK4c;(4u_z?`w}t=WR%5Ycp*?Pg-`pP`Cdr zU%Bf2V@l-9`;q_}aroFV2|M%SC0k4Wb1|%yIjaH6QPQC07v=8U1~a#&$C)2;9t^O~ z-AI9}I~7;ZYtL6Eng>ecuYG-3uxZy!RqdoPCz+-pWRexj>Y`}lClzYopy5>3L-`W6 z{H$tIhyNph7rfv4wHfL;SHLWLAL{k%*}h2Zo&hf%sHR*EiPYoJ05Ni7Bti1B{V$=0 z>B423CYl`#HIoa2Nw_~EXs16R{C(Cmqbc5FaD4E3L#W`z=(JW@Jl*m%g!zJY>775Xur`6o-`>+?cw5Eb88CEIToms`bWgb?ZU8i#sd18wBMd+3f{deViRnyPAeh(a>LfWL!aaMd3aH;%w@`Q>^~7 z8i^^lBNvf(p%{N~62r=a#vh(qUrjQ#Tfslbcdj7mZsqmJiL)r~9!e(dSndi3B+L74 zPqqGZnfBFzkadP>i=Kq0-rS)D{lTM@q*b2sBHB;Nl0AeEO5Thjy5o&+@B4GeWd-l~U?7)_88ik?$(w37T>=`Z zS?hpmPA^N3C*@uw+UnbdV4Zf+s)m`~%vd8g_c7YxMYG=e)g(k~oLmGO+isV3ZM4kB z1`ty}_eEkriwFj!q4-a4eOSnCA=qv$Y6JfhpH)%OJLl@yvHT*sk_;q5?Sfz#_IxYq z$j*yYhbyAjBt95%bmdLSr&foOgC1n{2(28FBFJ{)8r*_kd{*t_Z!ZCc+2P3d~3g3{un%mj3c}=3lV)fGt-E zufA)xNq#cgyS)BaiE!y~ce5nitC>8NL^)svYsJWXBS6G_yKZn}=NcXu)sh@x-V1zdkTM zo&UMP!w$ z-2~MoY94)Qm*UFwq{H6eM%f_Upv_dVz;Wj<)~Dizjk@2rTK&@A;T*-w1(BfkpjqLX z*DrhxTq^T8eTK=1O1xzL$pK4X?ge@*GKDb)gHmwSdTT%s>Z~XD;^s1O58h&EH2f?I!!0A z;ij^5x&TW>Ucuxif!XaLtj6SXDkg7l)<=KR|H9DGt_IG`uxaSAk-r65)*ma~uwGY} z4Ij0Ki;M>G4fJTh6%bVHVP;*Q_@$(!0)2@?m|{KqXS%1_KkWYauCrLR8sqG<_d+0z zt!b$fOcg4)T>`^oVpCct*U!wD(9W*LDHd#u^ObfFF_GUe5CSwu5%;$qAnXk2m?Kpb zh@jzwiD5QiT=wX0l_eVlcE9>s=UlqY?eV#p(%T;;!>+k2u-+Ef?VMuov$R>*GO;&r zhN90OxZ&>&SHE`A=wK??tS$irb85z8y{>1t>w15|N=qetjZ+c~UGQOjeL|o_S z9ej6RgM0B}Ni-`>TSpkN!tj!LcVTi3nDuIEFPGAGmJ)Apc_Ch!@_oP#WFZiXW?Mc; ztW-XG|Iy8+m-ljrYD8q8nYubx#>SP%&>C^5s7N_0e^E|e9~r}2thAM3;9F2tY6v_d zpS(L}uXI5&DpWTkPC2`~2EZ#{@C)OYb3_k-bdsjy!$2I=9|7b%x|L5YRuFEflHILO zZnRUQ>~%74X}IzhdbDoOuB=z&8(ri4>opEQ<#W7(*#4FSe_M)t@v)fftQe?0-v*z4 zQJyvhWj1V2KBd{t@cuO!-dXCtk(P!HpS8W7Z&upV%JGk05r1xN{eXy5vFw}(K}_cJ zi`&sCaG9;hJtmGIPi##y0phKHguS6xxMwTz$gK~uN&F!j;=QKA+)fsqst=6|1u`tTNr{nFnbJVgI$KQNz*KCK zZtI#`%MZvSe>4^Gbs!n4_SC2ZvswsL#i*G)72#?bn7(AKA+$wHuMx(mg0?gMt(?iqY@59IolwxEYkzj|+12*;4CZt?X zV_;^@WU2T@1+PmCJ+8~pFAEkU`Oy;Kt;-xVP_$L{(0UR-fT9G_8hau0lsBCtS`n zS*Dm%tERPQaP(sb&1n;`tL%}=7QN<^-k#cVH=YeS$>ED#MaXqa<4T3QLj}ItTMnf4 zdU^9>D-^p<8^_=jq4%ymA%CXtc<~8dP=8_~pV`Jp$*{GH&@SoPEmKsnb!5o5ajS^= zV?%po8y^Na3-abP?MOH3CvHhpF@rgD(YWN_geurDVf#`o6NH_@sUU>|{hEXfZX5@) zphBxekyeT-okf@vsfTc>+dNG=`va)Wu^l%|r&&o9lQoeqs2s}&7mdri6C{(WoIA{K z%1Iw^3eV<1+ieJb(2^!^H@$Sfq(Y?aI!Bj$djH;C_%y9=QP=nWtQc8|4V_^NyOSID z7M7Wfz7r|e$)vNKgQg=R3W%3FkD!5z(8PdofV`lAhs%sqYuObQI({69s8HcgqfT_@ zd`G%bcHC}ZS{>Z|TIqK?_JxmRHUbatqiic47HFJcZddW+;eR)zx5Rxm)x@F)Z0hf) z#GZ2cj$*rDUuHBZ(}huu4NNL*ta8t7rwtIXAKlGOZhs0wZh_Mxd*{z61o z!ohCC7sW8*o(L|mf0bVF=y9l4`}@zWEm!)^aE(gIuH8QqtTT|0-`*Q?F+-Kn%|0`_@wH6xz)9$A8J<`>a1wTK$G3%Pzi|2_*aUnnJZGfQFMB)0Q^fx!+*dteckkRc<= z25~;_9QE^oo<N`^ zehs1jSpu_11gJ38<}-684b7Wj;FixN8?3BgB%=hd*V8jNiw#1tbBqdhx-jx9V7Q-6 z#jf&XAm0ZRUHu)GoZat7cXxM9-1?q9FkaGmPyCMH#*KH~H!Zayb<(wxkY5xdyI-GQ zx!NiCJ$s_4eZHbJ24Pu|@bL`BUrRB#ji1qMk~%vWTSZFQB-axJfF8UzYiMx5wg>Id zCH%diNqKAjf)^rUJC^k<7T*4=!z%}}K2LLZvddlEr*8=JOb{DhDdTWx8+{>?4n(4x z$4oh@-@&7Eam4?{-wfD3JL^D-OgBqee|X>?WBIG& z?>vTfRO~%hp;MsY&!o!U8+@U2ugm=#0g2^${%nnnOa5{*F&KnNl)e0>9t49gtoun} z5$?DSP=w!$B2HoLo7ZAaN>!PL3>zt_NR{fu6iCe*b0}JvsPV#9`WvLs#6B)5xma7(gbm@+pOS)WD)&N3!k?%$2 z+0~H^4=@M%`i^zY;JKp;9XNl0*%Jc$aLVRKV^(*!b6g&Qy(jezp5*J$h4&%=>mKSU zYuti`J<4;8`ae}=n`GO1Y^J2a*)1?pVOOy^Mjt0(ymSkR7Djo2Y9-30Y>01AH$c8I zO7Et==HEOyX~1>@75qx&9e>)~-q6Nwc(;oJV@uKv8!g?MJ>1{gcs(xj@~U{uiVsqu-(VF3*h$dK`u&ys@CFotunWMxYoo;T zt{YHIg?fSbKpHi--HqOZN|~aL^ks{f?yBg)gcFOZ=xIMbFoIq!XWbo$KBaNPDR%qZ z`1115#0Da(K(b0C58hxI7tUM_I-x6%*N(3+%`!||_F<&@XMTMszo&1<}vEwrm)c?h( zMFIQt>$AXF<>&mv8JDWm&{iYjaG-puSclG|rXtu6!2YA{wsRnAXWiIzZuv(U{o>Z$ zc+-4EAuNwQVYQ&F-H(nS#3r%x-mvG#5i${`V&YzXVH`c+G|l^%cibfT-<%CPg+C4U zF&(Tm$@g~JYs-C*#T=SDLD8}S2Cyg?^<{U0*0}X}7X{2IoZ~ZFv+KhrJZuEii|t*O z-{b<=t2}iOZq;SWZxa4C7lm>^#a93aT%O9h2uS1VSz675&U4x7Noka z5mrruJ+j3ozL2`BAHgQisUnm_(M|u*i{04P=%R>WqwJAdiv;Gv*(=mQV4WVloru|O z0D{)oh@&q$fm$k;*}Irlrzi@x{L}Nz_tY-TIn2im1-{;CON&D$4yn2EYMiZFS>8Y` z#!mXNz2=WZYV^~Yn+atMhgbE+jM(oKSKs(de{aT^<#UuH4Rq0uco6`XL*oODhp_QQ z{@@1;o?9~~`f*NFG+!Nz^%CuK<+96k!v`(F(M0J9p49|+9=;&Ssk$=+~BAG)%{BD^k=M z`j`9PB!j~OXqjriGymyKQzPb7$3Gl`;&S#P=%Akj=e)AmHC1yJ23RA{hz=Na@_aIv zmB>#Td)sWCGMmyn&&!?1XsVah<#Aq!IvxLRtlqCd-OjL2X^$1p_|WI32#!GwFZpzglB~m z3^h#UdIrE;??ZDqW`g-xd&!3M$?_EW?!f?E>BulgIM01>)^jdNUEbuexL$3a;dm|i z`OQ+hg+BFzEc+DGDB1&68S%#vW<1h1OmmsY0u3RjEJeDeV6|z>>6<%oWp0a@qigQE zMM^O*hQ}Wv$Y#M1&a)vMYdwixssiG76plOvb^nOh58(e!HWB-SmOisQ6%*MxF*MwD z>;hBzqc6&P*{<0|W<~QFTXZ|9_oxT*)+TlNJ{!{u1t_!a^F%MDt6!$R85Kzxjonc! zxF&1uB0Lr~C>jLXA+1o8tQ}1OyGl_Rip;o>rH?vbtGUyoS6A9YLTxMbZOEBasm8)Q z6DZx|nE|%UHPTHbfqKco_eqwJCxa&88i03)a1HMun(DUi;F690@F+ z2`*g+4Z?UW2lQAeqh~b>K|-+C`TNu=P6puI5;zaIqFWaZB*#U{zGdpKpif+PAGXk5 zDrXJaLaAo|ulC+NoXYKuA4V$GNy<>B(n!W4Q^GExG8UW6N`}lsGG?eGnJURVCDS%l zNC=e(*<>bDk$IkHe)rQkN1oj|-}n8#@AbQW!?pYCxt=_Gt#z+^zCZU`IpIkND$ga=<2NnP)2|d?yDcIO^u{m?YH(hMsasRV)wmW!DMKfLb+sx4RQ)RzvUD-C>~1B zC36RxRJ^)WGgXrk2#IOsoTQM`wq+H3-{@=n;tx8en+K)cY@@f@OD(H*QojH|Q>mRp zUROl+n|$I z#yyiZEl#!PXnl1YHvwGGrc;}FmhMABOKb-rr8xo9R?eFmO@;ms_qzaSw(XcvC}sO{ zk6xiKXCkg#UVevAYn|Aa;ligwwF?_^8*bStlhRRtD3`r?y?aV}da0tDy)uMtvg0@v zg{Rw=xmz~FnPTQb(NNRQ$&Yl4m$Meah6rkSSs zprNJv9pAgzUtPT7VsJIjRhb|@q*6r`1}?&M6PoTU24KzFvTb|RGoDRp<{tx$h^*7u zuG&edwyV_fh%k$pH>GQ|;U~x~86Iv?3{iSXrx2N(ZIE95(dUC(k!CFSlg-rf(N&^} zi1z>nzb>cYv$a!OEU)EPW*m2T3^0BF_i?_!0a^Nbrx>woAC!@r2vj{z+7CZh7Y<=p zu30Qph-T+as~||sxnZb~ga)RI7ENGM@(;k{1Mbfu?MGcR3Hc}hr9BIO@+f_EkQq|T zpIN7>=ks#`6|SxG?VUke#q$%Q{L4G@6#lw%=D<;vNTUO z4&(9LGskxY_p0@%quvYySEw>`mdQ$mpld?5oCX8sfVX!?;;m@!fTRP{+W`UlgmaR> zWo4my0Y0l+nLQx`yHij+ted~6Ol{77;q$c4`)sR{fbt9HUB69&;vdd&*4!7~5gYFp zHbHJ5_jL!WJZQD%I?t(wp{&ry{M=-C!}7DVP$lXAI6R49%s~gcK6$SxIv+4#>v(lS zGfr43R;q!&E}4gCZ^P!^o5?wa5(O+Dye@JGH0(a0NIS^<+yzZOcOe9`B#pmDSerWz zsRd(YJcniXT)K#pc~8w^DeCb(zxBlR1nh#6(?{ zvnHs>Vs}Eu=%h=s{OV$!|BaW+p%wf=;!Gaba~zW$BN~D@eZKO$#&5Er{r+^DPJhH# z=G>M>fzaVGSvJ_;Gu2&M=n2C9vV#sw36~|n{<&cu!Us~@1^4G;(pAJ#r}^kO>O(lG zpYb~PTw|w}ozJd~8a%U@6`eM}`0@bnV@)I{n2t@IiF&FpkH5-7MM;`n6?;cjejqzb zXCXat%07SPy4)M~j=;Faad%=zM16LEeD2_r!Sq7k2 zXNS~zsg2Z5PVYx@909!EKi*VbKNH(dvE#tlZn8U(S8loHX&0up#ov3)F|qI#)Wq{3 zjz}bW34BTuVX|^cEM0x!E0Q_7b;G3)vdBd@YZ$lhJB<`T2Q=Vkv{QM-`9z(dZ|f~&?O~t-v^#w z@#fp;=)ld57Tkf2ts8BaLvtL{h3p=i-xM5loYiu88|l`&rDtQt2sEA;LoWstRo=_K z7opqT$GCUQ)7$zIAOC*Q4%gIcC!|Id3%PG?cp2;z~a7KK}s0(<4^p&MuF$CDhuyUhD- z)Q+y|t)G9LykLe8I_Wr>0#S2m}#}5)2mol zfCElQ_CL?IAKSLL7s@daPqq-`5U40rz?Xbs{r0y&O$Z3&p~N?2bGSJI;8D+1!4j2~ z*#r)q+q%dgEA*OdZ@TpMVb$qmJ`LNYh8%Ivq!Daj#N(LhIA~)r^*UleSK^#luG!xR z%{!t&{)3>nj7Lm*LknLnlhejA9{%JQltN%;-7vDC3?6t1Ts(vh$1tr>Vti%lEf!WcQRjKuxX}u=!Ul#`1SR zzh+bnir>ygkd5^)-w_Gy@P@X9=PPbvg>!-G3nFiNEGh~=h|_{o#2yh%NvPA$Mn8a) zY6;$Q0JUD7*}a0hr)>D3$DgCNqpIaOeU8$P7tLI%2RC{g`7*ko=0BQo?)9FWWIUia4HUeQ(nP{;$|Sot;wLcelt^ZA%#oK7 zy&WWE`w^v0>aY46H^I#WxEB}i=^e01?TGE-$jZ5zvzJ+CKjRggTyn} znw6iyN7JCG;C^;DguQ(_B#Q)k@x?uooJ}TE@59A@oU0kSy$ecrsXhKtNr&=kd9yB_ zvnRioZyu3b8?6)h_1VHqGQ-T94UtXZ7XpJqEOtQvXOEr_G~CVM&vBe2G;&&T+Fy zaoB>famgdDYiHtr2!y&r!dj7M#++qLKR_ zc@I|hPdn6q?MTuJ^6QUXxCMQR2JZHa_w^_L8LIjpf*+WQov_l0^h8-C&-&I%|H3Pg zPtPgoe8Vw?hKj5ff_=kZ%^>Z)>m|Uu-0_g)wa$&?azgq{O{@*B)NOF=VJHGvQYJJ6 zAdRoX%WaQ}^n1n-fKEDV#&22<@WVK&F?#}tBJ|ZFT8^>Xh?Vzy&~>%0Y4EAl!Ose@ zqy>C^MHE)))Ar@s*{Hsz)C@=#?CgjZ{%(3z%Do+@osf_qjsx7?$HuqWfI?9M02xx4 z@l0<_j4M27Y?7h42c*Y?^wCj5>7npP6pj$@HbUu%K_-LeDb3ziYdzgrLHqS`!P$_q z>!&L}n5fVmb5+4F4?B(yaW8*g5(`NlJ0Qv=kaxj`b+Fe)z^MAUv2g5-fsnG!)_#*l z$QBqwFP!ZkH$JnvTt3h?`l1rTr+@O6|JA)dj2YRl`IxjSV6?oU1MeVZa)FM$o<6_! zE*bZe-M8ub_72n*Mz%lW;dV(SomKoY>C;mTVC3aSPn|j>RAz`%s*6wgzF zMuvyYJO?*{m=x>QvJu!C7H#CciD5GVBn)E;^kB$vX}(tbB;`QMKnYU=pwFPKv#J)*XU1R;pU@VMCYZcv+!w!a zt4-cD_`%L1aEz|Lad<+Im8Y_R_noP+Lxiwq0iclDGYe|It(i~{kK|U1hNAQ}sCHH-WhbYV^L_TLNmiVJ;&dcpPU62v)?pb4Z67 zayORHE3k?1^D))(dU}vU+ksxR#%SYkLy(*_HtJ|Ft*wlYMevOXRupNCxri~?f;Kp$HAX7#;BXk^9_bkE-0(!B&! zyQ`*aS}{o zt#QM`_*i4ETm{>d&T4krjYqrzwVZ0Kk{fw+x)orqD>=kdNox2x+!H=x6*h<7R8kiyh<29ti_{c?%;u0VMLA5NzF+Mr#2ApswzD zc>mPY`)K)HBXHdN>eZ4nbFaDA1Ze*0VjpW<4S83?I=y)c(6|g!f2`uqLeQqf_X)Dt zw(5{GgnGao4bJ=7j-Cry%QZWptY4&)kQB7j6A{`MNv2!SwwOf)QESG%iHrpA3&=~Q zFBe30)z|#d;SP%zSGSFNZ}@o#JKb;ygwXZ6Y^M8TRgoznw7OG zfaB=lHydx;CwGV@ruym(Ld|N0V+)?&!$%0I<0Sa%YY<55OK_Xm>GGuT1n`Kx*%;{2hg_FbEzA&!ewd2qrNWNeW*JB)-HIN!18{42)1sIF^on`s? zG*hH&0Dwv5-9D9N%6p?!vmMnlyFaKdEPdDysZJ|y>^1S@CKZ(mUi=FfT7vacoI9Xc zY)F{?{+UWpi`f>7dr$5ZukYI!`q)EVW8%$LP2r2%7JYE7=r zE9(-6D!V43cQd&%OZyVw)_UmhijPH)UNCX0ud|ZSIpLDJ98{=e;%cbepuck)63Jkw z*?vp^iG$bDDf3(O{8zi;#YWvU_pm2w&+*-#GjVfP2o(RW>z?nlef##-#SF3nD*Gr` z#7P~Q1hMDJ(ywSXn$#*}Hy+Hxb9>_Vw)=|e3S`7Xk*y1~3DmEdm)o3GFFwjHJpiG3 z4MjQOsE`xtAW&^2WDQg--g>@b} z$whAC^_+z~VaCkdIjcCK$6b|QuU&`p43-z$0N}25NA%)-UyqkpWNC9@)4yyF`HdLI zwpgCQ2D5|^WT8piA0o>Bqu^7X-G&Nv$$<(c-BX{Q44g<{Jr0EuR*49+>oq(IX4N4` zKHPlu37|cvpzh;nU49BuKQY{TNwXrJj+wI)TaXs8EGv9eoFjGCRZ!Z#p&o>4YY%im z)t@`FL;$KLA*)83H@0`*PXU_?QKh1IvWpZFU8q<)o^3e)&8|3Y6#Zc1$@z z{COX4=EPc6pR>7C4}zQN{8gg-eAxqUQArbO$XzoR+R7t&NgJ-9Yw|e9FP2TrkQ#OwQN68L+ zlCtFW96-_|h`~$R>@m3N6R!;u6+F`->o!k=NV;@EGyH51U*oD=Rb+G!hYEOSo`H|T z1w!LECoAxg29R*oSOg3tG_4=y=H|)#!@`sfx@QCyrRoVb!0IS$0C!7yJOS%ml?Pv? zB5UaM#;|AwtC_PQaaRc_ zAjBWC4Q=*F+;zboZsag*o~@X6RmvzCY<|TG2?)d&;L;epOd~MFtRm6Ezg$JVZ@_sl z&`mym;Yz-Io|66%Wo*u+pT0m|?c?2jZT)7oX)+xHcP5?c8#;vPhElHU!z%yFwgYx= zfg@9|ju_DN)t6({wccXr%dW>L?Agp09FXMKmQtH%D>A)2yve~i@}ZqRnQ1X-liGo4 zbzc3*$3vA5d;jPq*OIt}xFZmaX}1lV1s&IA8AB>)b1VcLLG{810lWWW@1&_@>+24K zjO&2R*AB_Lgalc9?wb1#Yap8?iq4{j)u6TyYw9A%y zKV2gW?+eX`DiJw0$Dac_rf#pzMD5g&*Mk3~K>xT`M&JNbo?>89oShLSkJ~l5BYgf6 z*D~{!6HTR8r3M5P=>+YHJ!Km}cm&7CG_VOx!)T#s}>@ z?BE5^(xg`J?JjmNhL%2gks%LLan zqT^N{rdWU1$2p(ZB(UM>skF@JbtH!O^FN7d`^&eArRzjBp%_)6oy>pO`^k`HN%!7WYo#9cw}9mC2SoP)o2!BIs|SxmPsUVKk9ay5 zJ{26F@GhBFyGobYXi9C-q*bdWQGioRnrYEJ_-V>&&b=lWj%o+u-^X|l5x6QWGl+lh zvg1yxyKqvuri|eSaWBhD_0aAYD`-3&7Rm!SF8-ky+y`jo1pFgFt)=TT>=JcaxS6X( zpmcH)I!gV;2Uu1Q?V9B$!+Nzi-6YiB!a$g(CR;WVIMs)qlQetZHC@b?Q@}H%Bbht^ z2m}U(@6Y2Z2%tsm?wf^tF*Bj)+^3&;_a`fQ!tnq|Kh!as9OQTh18em}CBK1NHnvw< zFhQ>3g{jRwt5tWCq$EE{h|}C36?aTvLGi9l5Sq)MCYt9tsqwqS{nQe^aPqu zaEmG+HCKJ5eV3qyS>d|7sz}qn@ykug)j_EF#w_Q`ma;cN&Qt0%6aUmg;z$Qf(UOmbC`6?<4X99O~9fSkW& zSz{W1L+TH7`g`;yPtVQ*1*_Rl2F2TVCce6=nn)OMo<@|GQCG77 zdXwCWfmUiM`}I`)+6)?>SDZnL1W3n5#g7|DE4xnK8X6;ow*E%pR}PtLyJ#+p`Th$p=b02OG*aQ21N`A2~7Do|o5>||q;@8JnVziWx40)8tgsjI|aJF0igv+}`| zolRslwNg(xZQQZI@toSmc%-;BYiO5fn5fe;AijwVZi82(rIR{B;1gk3m_Tqp#FR1- zxNa18*)c~BD!+f@)In|w!gQ z#TAjnMc4mD^XhqNX_Khw@B>)on2cG+s9DzDJFZ!Ftq#@G<5@NZd%Sn6DBuQ$s+#6r z&doCx`nuYGU$NKk!w1g=vtqI7lBW#6)s;0KXwSSU!FlTX=@vyCt5RFxU>RKV(ly@j z=>6-qM&GSF6%*O7RhOU+afYkf+2E>nnaXo+>knRy;E7hOpBIVjxobER#gv`iv8OR5 z_u4Dv`u+&-F6ypvZ}GQG9nCYkZr9{g*wUy&9oC>pw>;_eb;>zW z>aB<)+uqj68?AXZGDD1FRQPzEuh*r%Hj15(u64~ZLm&1^QFjg#gOmDft&BQ}wNIC{ z&4*HZq(Ump`4Sd;Kt20-nn*VL&gsgb+x&AgXKhZoY1wFx;|AoYX12U_EYz_Cd=0B#j?2-8UK&p`eI(UHp*?K0h(C$OQ8=1*W5^h zvu^XT*}48SR*V|iR;>Q8(}P+SQSaIX)sG#TH?%Yz8g^ejZ>OW2UNHEhs&72@<+QKa z`0}uSN#*;-&XkqFan->zzx32xAv!$Fg8JE!P`v$OX`a>W%%{$ne2uPmrSIjB2)1Z$ zyD^hKr8$@@zW(%E3aa48ZfEMByjeO%@cJ;R2TtwwaQJ5xEpMAm^4?($F8pa4Hfo&1 zBNiq}#&Aa&Q<%`+Td)ha)t4_Y2@5c2bhOe{70h4KbpGn`^1Dw}$+NP?CHx9cg}u!I zZIMi#72B$YHx`Z5--6_d0`pnJfs2vR?=CQv6_zRt)Tr55K>jUC1xc z1TVXs^TII;+Nj2I$ZKVCuGDT+l`EJrSF7rL{RCH1;$Ko*=(>M~GM`>BGH<^Mw>m?; z+ShS=(@0K0C^lXGfZL`RC7YD8w6k=Z4*wlj!9{U;jW+cL5kh zWzZTx-|J28EJDwetzh5A&;6$#1`Z12) zH0{*c4;p!JhO(WGsgsi(oYU?vIhn`mt=X|MzbO{rr*sSkAR zxmH!`&KFt>Mh2SREIjVh_`+DP^weO1-a`Iknw^fnYwL{SsmY$#dqiEP4hAt@ZrUvv zk-gtsbhKP3%fdlsM5NY6VRjL3z_$smBt2NTDCs;~?1@NGzjpa7g{+QlPhoCtVYUVO zcx_U$eY+GBcM;xecLxkArAA^mJ&vrtTvDd9a$CATN9D@W59(M3-+n99`Zt4wuRE(8#n$CmIOuAB50%DV^u_8rYJ!gj)_xj+SUYBfeihQtK zbSEq9y}QU+-G#!}%w)QMp!kF3p+Af)mS?#O^_oo$xcbL%mHiCP6Jg1&_$5qxu^o4sy*L@gT}{i$qPf1$lae>G4V0MY4#8AxKT<2 zg{J9o2@(+v*{2Gu+G*iN5yq?0c@`HYeVD}={0nCW=ibjqv+B&+IbU76TUcm+T1PW~ zz}sqZ!KAZdC6M3Y5|*!BXzAust@n;kvFR(k_xyd&VqZ+`KV}GwVk0$LvR;Vc2KkO{ zY|3Q>cgUBX#`qufcwgOxwGbI4t(GriHmM=qJ$*JF|{{EIBsVL))v?xXn1Oia_v z%!trQm!-P}v+s9c6>#d+B2-|#4voCA)Jy487o}$59-2Vloa94Vp6K@#XE8CxM;r?lN6B*; ze1&YQAH135gG*_9osTZiO}RX){ye(GU63&>Jw8+rq&GEJO|J$Hh5FYv@%bAmBHUkT zSZ8~tpW|?{ww6=*Z(L`UtQu#cN<uqogyS%Wq)XHJQg(a?(lcYDU+)|pf4>2^!7FalLfRlc*JSqAoO z6KZqZFqCAD%)+KIU6qQWNdr@$gYmXH-g3!2-iNm>9x+VO9-Lj$$m@*KaTapPa+PLc zj9M{S5!;gLxZF{nTtH)|`Q~V4pT=qovMDEe;xc;)3MB8|nJbQ(_@Pu(V1jO}$k-eZUN z5276M9W8hx92w!viyi!|ypM%@P>o42t(mGrXqBh4PV#eXwUMjdwP(URJxlI&d5T2c z&%1ewVbpK$j3&-c#=-NCx)mLNN_W0ZsF_e1Jr>d3AXi+h zw(oar3$LrEO_<{Lj-21tH7#LLTs_{*rF6@3c3x|;vpl1as$->f`%A}fKCe@|=RVrM zb+puJ&FV@R|2S9};>;Vk!#xE&wpZHzMgQcnwPd1(eV7bHNei<|qlYjkEn`8!Yjr7v z5!{5fNxF(}#;hy#1{w6Od&Hz_h=S0*N>(T{~gtXnET_Ubju@_5ixp1bdMCQy;! zUJfQ$v31jJzRb(fj`(lPyUib%RL)+Y0G}!m$ zo|qX#&7_x-qKFsG1RQUD)9liE9-}H%!*m?%9TsY#*%(^wqc6H)9KS6MB5W;Y@19xN z@vXJ1<9gJeIv=S<`mTk1>C$Mx^TFn zR?An4b5v_rc6#1Pb0IqkPOYYW*!RY-#p{_V{r39doua%(3+61D_6Q5LWZ$?&mP!la zpPG=2+6oePdc^9GRH>pC=Z5)AZcu1Z^C~u%%3Wbsa0fq+%Jy)&MsStPFE0jO{+j=W zE4_sg{3G!{_T86uo&EgAOn;= z%DV5*PwEZV@O8~hH-5aww<5tA+R^ruRY~pyYv;7YV%JKWLU9qS>HQ;#28rlM_-?v2 zObPAaNQ2vB`$K)ZB+3QL0t1R`D`%SPAcyE{`BPx;C&5N7+TBsF#T~>)|3w9kdJlP+;`BF)wh-rD6lxlcu-l3JjUJKtsp=5R?E~A#a5_+S>v)ax=Bh6Wd z@A>;>4i}i8)onl|-nYR6y{~YYEJ!?iPcOl1Q-lld;Y=!@VGc69H2#+PX8vt@3ErfT z0r<9}vrWvoKimJ0VrU#XRWMuQuV*=>*fKIGMQ(rvm8IgKMR5PSEI8W6?CLI0QIw;o zcnX4QT9!M)NujKdt6fy^v(U;snx=K@I%jAjHC`a!eDqtB)A+lQgsw>BhR5$4GLA*a z>l6tTwtq%oZG+|gs_lu2&LZt2vTCBxi;|xoEi}eudR;3jg`IqWvkfLcGHDoVfVoKN4fA}y}nW<`dX2V@Rs()wSy?146~hl z>WuM=L()UWH;O|K8-6q!O!rEzn!h?#q0uDpL_)8~YP6DToCmIadcPAwHpaJ%S%^^F zY8W|-;!N@tA5c;E|3yVPKftKQ?(F3f6U`fO?j7^8DC3q)BkM6cvW!&@e!GkuzQ2Yk>0!O|Hx}Tp z)g^|2D#z3Hz_Eqv*7hX^gqAtCsgl72!pb*YALL$IO&Y`JpA){#ydNO$nhidd4NR>blUc>An7nz#N|jNhv$lojICoAWr$)$<@gSuMX@ z(%K;kPNAzA%zz7_V zLG^woCugX>-<`j~YB4vts{!%BDiA#c5IY|x&1&s{_~mOg&Y-Q20M+w4Jl`m*s9SD#r($@iC! z=BguEyYhI%nBWpi^_yC|4?IL%i5U)S%=#apVv`1T3)c!m-`Q!6Xf6kl%9$->hFoHY zf5r^Mp)z`99}4=6Z^*S6!=_v8qkoX#vg+(?*mCE%&?V83a-NdR({Q;oqHtS6sL=}d z6QXd3jJKn8Vb-oMj7jymOf$FK!Nc6pcFU?IHyK>(1Wxt6TF0kVO2>Qb-&)NL!wuL0 zFC9i3_ArS01Y;b?lveAHR+WBSM-AALXgL_!?DkDY)B;(?lHfJjB_(&9vaNB)#G92? zo=cl@BC{s@VBcI-G)SfePVcF)mkfTtjTp<;|?;X9Wv)?|tni*K{ zCiIZWs3UhPn9>=>&_~TH;m<7TuuSPY{l|oP^2ff zh8U>)I%DM-)a&l8eNUd`EmB46)~zg@k3j2~VnIn4K~Q=DM%yq@zFT4!w7sd1tbLkb*%L&3Q_<_lEm_!8kN!6gYv@~d%;il zWxkVM0>PV+z(yCkM6FjNKmyy2=t;EHZbsPh3$HJl2>f(kc#_5^n3k)yD97Oju4Ae3 zUgEQ{Dx6Uu{!^H50Y_zljV?pU5(QN$NE16CYPX=a=m{r;fD-SMxG?pys?4 zv;w>RJOEVPz$f@`#G?HN&^VEtVGo*YB<`AsEH&S?LCaDzEJJ^^V+uY3u0qj=ishj% z?1VtFCG_R4`!zOo&>nr$j7V7^Qt|MH_5TM;+y|WCeDnJu)N938@JnSaf+8@&+X)52 zG=LP$f}X4B;<`~l*XzPB-43$20i)kN6G(-cIElLttcO?qUM%W0<~{txtfFq)Xsbl3OE0(5J3E zjasNa5Fs$%wH7}5hkVfgqj3L&k#Gh^m}vG0Kr=!aY|CMbjv?5~v2t;Gg2~Z?($mlU zLmGV{=k1N5*x2&L$gT2j)my08)T8OE$5u%trQeOAIReSM)V|}-T9x(_;)Lyh?K#z!xc0A?v z)8s$lfVxNb$WP(_HR8hv`0OT!6$|>ai_vPL;m<$5|FbypJ<#wACTJYwkq zcNq;cbC(f>OZ?U?^aneLz@S06H%b?l?^1luZqgAC3Cwpvh7fnLdn#8Te^f9a%pCDz;0}j%`teN<7xn_l{tqZ;-mq1x1n&SWE+0VF=ep zEA$F=NfrK5*?;Ane;T7-Oj!y+AA4bh&`#8n!3Zh;X@oFdWaY|-&D$#05d>6l4otIW zoAoL5G-W|rUwAMEk+^q)IfhP464d|y>sWsoJj`_%E6%L-Eov-9YEZbLoaM(+rahX< zz3dEjT5u>7>tWg&Oin?={>4<_SvCKol?oo3_f4puz_2L6Z^-WMf^LpqOJ`9`blZ!K z@fH*yC6nB0zvdJC`ja0J+6Auqg`@8Ze?VI>oe_9g<#dYi>`trkV9tKYxVt)N z<9cH)O7ymZxy1fyE*15FFbq6Zpp@6G5VjQt`)ykjfcB!ZJ$1mSoDbWl6BMzQn|#0& zt`j?3z!TuQ8p1=?za%fGO=yBFQVF4la zB102toiwif-OmRA#00Vte;Cm(L{hA=JCPJbQmj#6?SaS@L{h9#VC{j(6+}|3QDE(X z$Q49VtWjX?fyfpATase`5^4G0SO9dCvOfA>A5joD@_);XByJwmwTR*G-`O%EDb|u5 zL{bn*u||Ql2O?JxNwG$OwFe?s5J|B{fwc!BR}e|DMuD{lB3BSeu||Ql2O?JxNwG$O zwFe?s5J|B{fwc!BR}e|DMuD{lB3BSeu||Ql2O?JxNwG$OwFe?s5J|B{fwc!BR}e|D zMuD}5|7*EoY_%mzf`J77U0K%9yFb2l-=C*Jy>N@Uu=QV%vTIcN>*4Y{#lr-U@qa6T zQ*i1gKK_3TvZXtwe4e21{a+!s+xFm||LdUWuiQ8OfxYyv$lkRA_0NZQWcS#QqCa0> z&;Rwu%`}Bce`5jQ?{!Hf0%?Bz?|=LSBB}p7QWMGhH(ud?3MUiEOC&E^!~dV8hl$)v z=BW<=BX20_JMCCwK4n*aEcAqGyh*29cY9mH%gq2*P=Rouv z{?~dAc~6V2|HcCRn#rHq`~Oz_12Mhxw|_#+o)J^)>yST0CynT&5uG%mllD^zh!NaB zB*2Mi$-j7m=s6HQ2cqXdEDRCGjKtjU-?0_&1~I)uOz->>5Mp77s2qsOff!a0!-{oM zu+E1>;%;JCK@2O_u>>(8NlZu*6OzP)BrzfROA3fNhhHJpI%ksTIsE_j92oDgc);bA uTIbK6R{nQ>BRXk+JMhHx&VQfYq55{QeCy)K^Ks-DkMol9XVcE;-u@ry28aUy literal 0 HcmV?d00001 diff --git a/public/splash_screens/11__iPad_Pro__10.5__iPad_Pro_portrait.png b/public/splash_screens/11__iPad_Pro__10.5__iPad_Pro_portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..59178e3fca63fd10a4773191cf842c06503be25f GIT binary patch literal 101528 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

dC?%VLvtQQ4v7edlG!> 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 literal 0 HcmV?d00001 diff --git a/public/splash_screens/4__iPhone_SE__iPod_touch_5th_generation_and_later_portrait.png b/public/splash_screens/4__iPhone_SE__iPod_touch_5th_generation_and_later_portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..2b06bf2e6ea09ba04f8de227ff3ef67e57d8b7ec GIT binary patch literal 24643 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 IW$VZP1tRvNVE_OC literal 0 HcmV?d00001 diff --git a/public/splash_screens/8.3__iPad_Mini_landscape.png b/public/splash_screens/8.3__iPad_Mini_landscape.png new file mode 100644 index 0000000000000000000000000000000000000000..d43bf7c108b9bc3dc35885de99ec06907612f9f9 GIT binary patch literal 87016 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 J1?Nm|{2x)<$6f#c literal 0 HcmV?d00001 diff --git a/public/splash_screens/8.3__iPad_Mini_portrait.png b/public/splash_screens/8.3__iPad_Mini_portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..83eace8232e535a704be6221f4faf28ba142bdce GIT binary patch literal 90098 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�iqgw;J)kdrw7M>iWhJx~=zadnW` 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 bl+EtJ$3C2-CTGIteuCmrl_SZAF5LJZgSupk literal 0 HcmV?d00001 diff --git a/public/splash_screens/9.7__iPad_Pro__7.9__iPad_mini__9.7__iPad_Air__9.7__iPad_portrait.png b/public/splash_screens/9.7__iPad_Pro__7.9__iPad_mini__9.7__iPad_Air__9.7__iPad_portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..029e83c4402a94389c5b3cae8fe520dcc864f6fc GIT binary patch literal 79746 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 X63l8lE(*LdOgOav*l#I&&tCZtu>jT@ literal 0 HcmV?d00001 diff --git a/public/splash_screens/iPhone_11_Pro_Max__iPhone_XS_Max_landscape.png b/public/splash_screens/iPhone_11_Pro_Max__iPhone_XS_Max_landscape.png new file mode 100644 index 0000000000000000000000000000000000000000..ed0ce4161271651db4cb5bc842c64a24700059b2 GIT binary patch literal 92053 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%0A+q|>%s3wA7vh~@z13r*qNd$5| zt*alz7x@zv)W$74R*LIzVL96d(j*cY$FMJS669OGT5UB2?iT~3B*-Vu*u3N6agkq7 z*0~HofV8K#Bi;o?GTGcOi$TbI9*pI;V6-TRaVV1l;Gofk9aSl-K zS=jhDVjVR~Ota)57(U18a%ajb>Gagcsrp0C9EVmiJfu>67%?bYqbs_WgXB-@r`iJE zF_h-nhUljD|DoMl+j3d8KE(O@h#$lAQuG5&iNK%jF+KNa2_S2%?osI!VYL-vfI>eiG5_~_V0Mu8^=WN4= zc&9@S)*?oI5Y|^HwQ3CDy|c*A4VEl>adV1^{8Z9kwn1rK7T@M z(hsPiurCH${eRkf%do1}u5B0)1w;i!KoA5)KtVu7L_$~?7^KpTC=wFVU5a8523-q9 zx}-YIABj+d3%lE1myHFG7Vtx(K?AX9_nIzszTkaNmMfaoEhQEx}b}HqH0iFeN;JVj~ zj{KF$p7GoSo5@hw0sWYv%bP9~k$d!yA3aWxN69Mk6s0Gm#8SXOHt5qGLEEq`v;)gx zeO}~#6y!Rtk}&(oGWOx?EMMVB-<*@!%JhM9fN-kf`BoW_>}08DKhd`cx5N7D2p<|a zB#%`y(O7|lU>5k>i(Xs$%S7B+ZYo<*;q$Q^wXIeNGtN)yefeScGjFN(`gPwk6Wm%U zSNYTw!tcZqEB*4o)Y>HJnai?=q~P91SC7$8x#%3ZxYy^JcGg!JNo@wY-RQMW-vI#b z^SIzS`U#i0U?eMU0)p>Q_8Tu71l&`_k`g33h9pz!(F)Ckd!g?F5?Bs zeO2kM(h)Otms$Y_KZ}>@)XKaQ^wI!w>(|zU&qfXh@-jZGv`2h>T~<$1$*&h$_bM-W zNZ6fLK@g*+MxGqCBIyP5x)3Ezt9%j!G*f3yGE6m(pD1l>w7b3DO-(2(N@&N3UjH;q zg2lQx7kK?fdANbpykpI#pLHhtu4&6uOZe{He+Yps)K9gx!A zRc)Oh9C`M{l}a|*iSV$NZ$pryPa0U|t*!4ZTg4sWo1!A{3cj0m5TzI|B*FQ-RpD1e zFT0WXhYJlS{b8C6lIGU5^XWIY3WlhYcvO=!mVI{@(i$+GZcq9V)W?xYKee|kdm1okNH}&S%W3rdMoHmlBHFP)#kd$6EZhzuO%GCQr(Dr_5S_! zo*NMs_wT7DJEx7?6)G2AS8*4mwe;2*y*d=XBooYydt7!sfjpMXeb4H-;|-o)4>QJg zCSsGmr|`14uNBOj~t8loBp0@@C@j3ur1bl#oylst05{}|QK(O|k((_+D7xg>r*!2v}B zd$-O0pr@U8RukV1ywiF4v{2-Fi94eM+n)K&LJPq*bA_jJk)k6ENB3Q8CcD5Xpur<= z(iF1bARp?_8B?}N8QbnI3i%v(##X6pr$m{#-W6@iuZw}inEUygTKCYrp{ z^fD8Sl75DoWhHvtDwF#WV$qb+=i+pwG9;x+-Ogl_Cce@g!%HOxq=ZYlBes>SrLJ-Jt-TqPjYj1c_EuebKP)W9XCNUS`!kUoThp|i^S5?F1qFglBf-lk}eb(Lou>Rq257kw{ zPRm=xTdTem$E2$U7TkkbtcS=q?!0DHvwnq^=NTyajr<#sb{J6+T|T7}+NhyX$OqaM zn_8JLMWp^*THI^ZsK!5(G;QeZ(fO*>$U5l)6dEy(VW<<%99r2 z5s)ZW-FUUAC=!#g{3|9ogo0VyqXe=A5rd*cib-ttlj;w4lFC9#DeY4&37JBWb8x5d z&x@L{d0e`5Ihx!UJ6h~Ale#DR`Gd0aSFRqDP6yH<#_%%@+DVInj?sakQT*>XGh}lg0zV2(ZVYK25 zzFEqE>@;~FG4>ksHKHMQ-SvKV>CA2}f-3&FjM&NrD?RrVSb0Doy&TKdE-Je?^4S3~<*$|A1m13%M zo@24KQlcEZ1EYp|#?5(1c+QYvv;m4CqY%u!>T+DpUUwsNOTHBGbSN12Nj@kc#g3Ac z-|fTbxiI~rXrH4Z3Um4alAi?{d{zz&ozzwCvFnTPi~QLlZ1JS?#gPxWV>=A+~b#ag`$l<)(t~te_#okPPff6_Ez_QP^ zM2pO}mG@jCq^VYEgL$fzd3-{m!`XKVc%{on?GXNx2W-Wl;*i>vhGQu=AYsbuUWpQM zeB8U&Wlv;tT%UHM2sm5)l(TDSD)1~q1rF`ju|uI+%5nt!X{b|WoVi`!+_m74S!n6C zSI!~{6P;53b=GrF!fI^|4H~0N6iTyjfafU^LX=ifeujU<%FLQcBW0T;?udFN zVLgqqNePm=Zyg3sZS4_}QUR9f!^u{D8M%heAACmLmBUl7ktFb|g<&L`=8Q+(a~c+A zbH5)x`{j@18Rsz5ElHrq;|xAE$KZZQEjO?BDwwoDSW4pjQL8Zh!MR3Z5el|~?TbN> zP{|G3GWFNX()Q;A0gx$&%|&Slv}QzvqF0S6x#;#xZ@;mcPL8xuseUVX!&Li(tbpV! zK{xIpyGx=8qDy=ukOpMl(>At=8>xVC$Qz|dvCG9e0@h@HE|^siokuknzK7IOfR zD663OmYS#s(%z0+qvZ6abwVj5Pbch`dJQy2*RMoUu+y}z%&omwKHgAsqEK7#9XRCmAyiG_IK5j-aX4GZu)IA^9DV|Sz*xp(|gX30p`)j_C%oOv;y-CwCoW2s- zL$g(nH1u3PuEaz2<4&b5RwhjHYSFYl_6>o4hEm`L3b$ecA@uK`BT5xUsn`o0*ePe) zcJ(sNFoll@6(Cc-8uJ_@r8rur{aPf)MU%GEbd3@CeK%XB(5hyr7OTx)SzsGv)mtg# z--BUpAkqZ0l#3MXvA+uVTHA_fK_qG}X*7B5?t~(s+D|_-gw;y1(Lz%ro?WU-;D+Oj z6O}A1H}}oYOdAUmMHJ=E(4geYOvw!EB7E}T2x`R`?MB3Qr55k=1X9N4hOf4EGIpw^ zYO45*5|2H;)B+X1t(De0PMs@yUefuy&TmDE)$n!b(miYA>u|^Hx?QbJc=)WS5MV*U zR&xymKY6EWZhV({yHfOkU02^_a1WBmLb*Ciea$3Gj}b1 ziakycjPW1egixH^y3%Z^K2ZTZH5I114F;r*9=VfW&Ux(fF6`7toM6kc$ zG|LHeWPOb!HKb=meuKP-azjkA$btd}-8+~LTyfQu0(pgHbmhGU^- zw%i&AKL^k0_muiKe+4}_N2F<&WRl}?lv}k2lV7n04I($7uGRj!Rm~Usjx}a~zb=%? z-Qw;cRpzD1FoggIS;!X3jlAlgLz}dI?57|SwDViO11in153SH8-0%;vw=OMY^L|l6 z^1l8tEMC|#sE13{)e-9!RRTv5tDsVjlpJ{ELvTNu4g6`F_Fk)a(6_$NcJT9zWuSBf z6pBZ#tm$nuGRC4!XW~$FCWv<1$$C< zSVq76{x&pco5~8nR)67QfAy0L2G&Z}IEMl)Ig1bbT|_#SKXQrz>x0v3D~x;Pc|tAk z^q&1eZW}by_Jw2NM_LNM&?Nnlpm@*Fdwf;pNQha&BOTdir*k1o&tzRU5PWw)#s^k7 zJYUyC6&xDoKf0%isshZrEa%dh{U{OYz z#jgeX`PwD6`8W}u0#NEErpd6T8%sQ@8W^vGGJ)joo3ZW!q}3>(K}dXs69kmeTk{)| zZ#{;fBRcl-e(o4KgoG)tqRohLEWA7LKGHhH$Y_R$ZTyljU$o2C>-p?sYY$-T)+d=Z3W#DxWxr zNJmGavJ~YOnSVlsU)+(bxY+GdjKuZ0TtWGCDPa6EuQ&>m3LiSF!Q}xddE!d^rtMZD zwe`A5jKuq>YN@&wwFQTaV)IDam#7#vem&&&jKED!iGN* z=s3ku=|b!wkdVUQ175U*?tt#G#H-7w89m{Y)*Y3|0H~)4L5wv{K*r&ji_dX4yObMF zRAqwA)>oNCaw5EEikJ$Ay45$rv7t%O2r*V3%+)4QotE>yem@;1*I_J7`5@hu1)i*_S?pO+uLtOdGvEuGeIm8MNX+{BVU)IX~GPZt; zo5QdQw3KO5;c|t*i&8I# zHb{nB1Ur)i>K!wTc(NA1P-qynhV-C~3eF88*q{IIGc(F(y?}$`A`WU9Qng5U%gAd; z=OW2QR#Pj-%@1>WUuiG89t{j~iLL0D20mSPBc-~B$7g9&%Q>Jq>SK#Kr>v1+6-~_G z=`YkwC4L>ezGP(xcV>x`3Ny-0UYyY^#V-1uIGYXu%abMYH&Iq(FGSgc-t8z+K_kZQ z@NmL8hrN49lQHJ%AIB^>kkWv)Z_*uconXmRz9fV!(@@8fV$l$6vb_bR%;u7o7m`cW z&qSm>S!TeRy+*2nO*|I_2JMYUrH#*Me(3%sS&BWV(OAOWYnf-nFxk); z&6)RoCfAeA=6gtBpUEd6mClU99T+V`JR?wDe-iQg8DO{%#CQI_b)Aocq z+|-@+%^*6%{De?G^Lx{r(Hp3aY@nKu#bp~^@ekk#q9I~)^1iIY9#pGgKGW^aSj#sY zJvTh#pD-4}&{m+=A0}E{d@`Uc?p4i+iG=QmU4BOu0{xHP3Bwd>ra)tbRl#5|z){6Y z+v1_ib7F7w{&<6cP5}Wblq?8{`hc#ivV-&ne_i8XnuY-dT62O72mC$_;=J-Spo(0w{3*gNxSWI_n)*Po;29REIgjPxe-xR2fyyX~zR-xE)pkQK|!ccYF}zy|PL zo8J^tugpq47L@SA?&CFAY|*LHC%aI$b-M}6p^x*s--C7tD~Ll#d%kkILveYoHLA<+ zy)WHc2kpi$ho%i}JCmTrZ2rrJg<_0^7Bqx(k4ZMz-h!nh^?ZPGuOBv)x~>1d2LpYW z8BVfGs?cRCG+11a%w-R5q=S!}P&WTp5G_gsl%K)e%_)DQ+xhU1PS&aB0yf70tZx+m zn9ZnP9%I!lN&c-VK5WI$s1d5^s)V-&*;a%3)SC>r_qlsT8hpqUhGHI!Cao4C?IH_( zL#F-9o^_HVj%&snGre@B*nZ^*OyX%_A5CWKiX$iixMHpWr1g4nKJ_O4UQxcdjp&e^ zVoaHVm8N5%iHD|Io*dmvgM;bTH1v*yRGSRp^w6vN$bM>*&MFsZ_#aMRq>ki5KLnty z5%%hECF^$rKK*`QkERQ{^foy_yQ*0ZZ$y~vQ>{A>l|N%_8S{7Zgi!oOe;QAKvsC5y zCW4X@^DOa`0E*Ybug_|lg*Hcx)g0Pz90Xp)N!(!O^t}RAe;Pwr*f;}I1JhJkTSu1K z7?$CHAz0dGsB}!z&-V-IgKJ2B|EkHn>?2idJ5Hhg*Bj}JTFw0x%_j-v7X?4GA#AD92XUwv|6d);foEXdKh4Ip$cMN_$yVD? z*(Jw8+$G0Gyg9x3xQ{SR^pL)3xdoK#0+8O6jze;bhWhsEfYiqTMYf3Yow1-6mf44> ztlNq7>*$r}AuCa5Y(oRJMlOs9ht8Oqf6=wAw8j0#+$vF@a=yM$;V0kkRWdyv=sAL3;X-A!5W0*QO+1GY$H_o&7@^w1~S36$q>Qu~9{bm;3e1d|gkJPr{ z7*r+41}Y?0r@z?km+>N5ShcX|u{SY~4(C*j)=IKdC^uNin%}t4U!NLuE6gzeL!XnC zI^(3Xpi4z(z!L)fM1{}|lwtjqIHf=N%zzTyi{r4QgG%G^H98v`@la&RQjBY}>Jlb( zWYJC*o`MkZ78dj4ivaZS?%^U14hoEZ+Nw6+*)$RV$EkN@r@Cfxn54%naa}j@ z7WNnyTaSAQ(4Nw+Z&ds7bNL8bQzXOUXAxOF>g5s0?ed}{Lkn#?g}bmo@n#YHdgg&7w| ziSnt-cj^0N>V+Sn{t?3?PF|md(iCQOhzZXnSe4POZ(rg49}O>(>;T9v2vE22b$8uX z;^Y^QV>?py)b(H>G;TO0DzOKrsEFO7A_@z`&e2tdW{)Kvf|mG5=oVA}x)9jK`hk_z zj~&o1jzvn_P;E6lIz_JUA*a<|?r;%tb_cO>s8taVz9cvmgO2Whv6dRMghBjYs8gUL zq3~{g&)%UycD-+3tfmQ5y`GC9Y(3LdYfxK=V263nUia0e)6JpjuWGKqSFZ|Hhi7sb zt?P?Mr;o<@A5{#H(^{n3pQ%gHcM$M|87i<75*s0PQBKkKXlNvfc&p`E_Hx!(!SriD zVjDvL_#m4uC6U*1{2r5C6vKMJOUD8q0sa2*&};wTi7&ZRP3DwUhb|;33ThJJjqh3* z)RLW`2PVPplSE~3%7{*-9uOSdhD_u=JlNM5#AK8&_@lvo<4G|6;P`Kv==ha}fPKZn zW9gl?dZGS9zM~6K`5A?lnZW-<>S!6AI7@UarE;%ZaB>h6pZe$Ir%U$O%|U1m`k0|! z2+Q(_&sGf+4LhKxO_TZJPLayi8xe!NL?DBKJ6t(RLF5l%;lS_0!awv${urhE960pS zw>D&5PDlL-^lU9a!*Qodk>V)X>9=W)ZFEG0%?s%+=E_5>^FH+4@iwLIr9<4t@qUe$1R>W)z7D6lr;BCd8yz;x*y*O8`ub5sCkC*JbgkO%=xSDt7mABWQiDJ zU0xa|+9Sb$Tf|%0sNE@zmPAQN7Z#+1NtT&Sq;A~bxoJf7^BykBc#lBCx6|~GM0<7* zmkg@ds|TR_VMKf3A#gqtP*0g4bFnWphgR4tmBT>4-DthomauYNU5kmFPuItiU~u1W zV!SnIPG&w)jSni%O-1tDG0$o4(+!V}z8lr4dRjt3 zylgih`BIC<@2RX+hJ13Fj zWIftwx#Yymv$)95v){8f5r;}7)Z^n%Dm{_HO&e+(%5M$479Ewx?e~(AF_$)uyGAU1 zo8SV`>xy?M56v8mxEVRV4sul7z2;9KQ1VB7fKLM7@rJ=%KYNFcV-p-|DPJ#9%|#I zppCt+ZXYEJ#Ps{08jR4rTK^T(pIf0tG*AA9&~uaCCI2eWuF!nHk%H@O$YZVcrNMgVppXw2c zgmUkie`(Fz(_pgaaTW1s5g|oRajDZC=+@9{p-5=u3=$>3sBuhbn5R|7f1=g@ogS>` zSN-FH{F{Up6Kg+OVtey#6tNdHpd)NVD_MZ&=C?LZiEJoMU8Ig4{NCne@m6hiZGdgs zE^eTHb%{sx&af?zl51S_Pj~%q(MQ%8mqD*kimrg)s)vF{Myl;IfJ8cVCEojC9>Pjy z-ixnM1F91K}6>XSCi+0Xu5a+CrLXgx(Oo7$78`JJT+2a3B;kL|8zh<#l9GC*p zBM;knV@#GJpbfFTQYxTj;+U<`_tZ;VGC=<|!%&NSa5zsu8Fiv=$HnAITxPO;annK+ z^oQT}Dhr#ny_}Wg@sdT|6`M@T!(5Fj-MQUFO24Dj4>r)YpNpjQ+1Ad<-NYh~(yQko z!OHkx`^@~^`Hw{dpRf-^3ZYD^)TQi$M9%kI?XCO*>tCe!sUV8VsI=&t07>Xi`{{(C7Z8Qu+KkUeT!CERq8WS6IUUf8giOZ}X6ooqI{y9Dl~p5{1PrA z3!EN)`oVf5ZbnXHZ2by^-ryx$n#+M?!@wFpvRM(t-3AW(!l9I>OSXm3%F&iO#3|Tr zt)?;QT#9`yvcF(jnb0}@5(8=jU0su42aN~y%+Y#p0CGI1u{mWT(ny`+XV+?PHG04p zMtR0R?K5(uJgXH~HzQK$u#|yxY#_`dK~sC>pk@3euD-kjo7%NBxMG&mQx6wKF7d@f zOT@yxvfT>}E6weZB@RARFFx@QE1(E}LgIf6F3aH(uixxXt0^ZvSz?Q?@Hi?0c5xT(?fYr z>M6@Ok(eu{JY5M%5a|8iFi@}UEoXxSdcHD02I&eB?AdUJCd*BGsUOYm7_In@=zvFA z9HM;e<1C27vP#~_>VT8oO!}U{d14_>R zs}~@p=~uVEau|jmmkE`;H}6lItZ8xdl6F`$&^)YhRIs3}Pyx!IdIlki2R=o-CJh*kn;jp3tO0N@Y0I0VB_?q^f@;`buhvKow0G%mm{>F-+MY$v+v+>?X5;1 zQZ}03;Y{d%(f|B_?l=6YZ7}9knxTx^uB~HjM6h-71%^-vlK6oRgUeTKR}J&o=Q_v>E;)K!D!;;_01S8g?U?6I=M%5QyFjc0$8yo&cr;Bge2}W0X9TkdmEhHnGsVp}=7kI>Dmt_7I z^Ml~~^MA3JYX+2kn5{XnQJrpTsL_8u>MOhWFA<__{S*js3u`GdV>g?1y=vXL*Kok<4FhJ4} z@%j8Il)RW>Vt^=u9P^W`-4q3&HSEW7pV5B_#+c5llcHMX)T zPx&|L$l{{3p?_zy_({7jSJm40a&(&pam+& zB>>|C`r_Vi=nE)^r051XUaNm}mnB`w)qg+jK zHO2knLOX8e+els3;9dv1HRr!(hVR;PHx52FglSczlLh7+PhCEKUD|_JnD*!s1-k-G zD`?^eXEb(uI6(16%?iQu6Oe|^zDv(Ya7@yS>-kVsb0wD{nR0wQCFZPHJtR{a6Pv12 zj!suqoyO@{8?M*~a`sgTwOWH?^O+xu@*IEQGaASVSAfu17-FqjJ zY^5DI+Bk(yUyT;hPZVK0*>SEnp^Soi40<@m%qf8G=&f1riJ_1Rr5fD$enRg!4GL6Z(8lpiI+v_zFk68g*oz+A(0GDQNaP2#W7>;=|`Ptgm_LR@Or zg|}Isf8|_j9rVSOk8vTxGmr)A2okR%C0l4e1cw7hYb3z1g633d@ne|Cfny?IBB!=f zp-AyrTrLcfd#ug?nq$N@&H$QgwZEz{unV$<51M=63=CVa?9c;fZ7)%Te`L+_3ZT5f z*Nl?VIsJ3BUx%>V+UJ#Dnvtpct9^h%zrmw#hB!gn)7BJ0F!_NDtdP(GR0)QO@Ieh% z4>@VSPs1wSL!C>&%jGgyyNh0?52Vk$k~nmGZSo}{Rxn6pV}6>9cpY5u7|F4e-#CR$ zi1!P9Zw~%O`}>G>_(O(6XiYCGl&Gs|2FOJt6ToVt^f1FGybz|pSyEu5nG{(Fp;sl$ zq%iJnj5~(W{FEqbHSkOec^Z9yTpo8`xd0#&dIsjr23RvaEvv_$k+^*Z`0>A1CBrtI zWDYGDPlGt3Z!yDhB|_6juwoV3zM7HlKo;J~N^9|2Y037@crOGOLwjs>|7Vt-q1NTH z)3~u!1d%}XU(iLoHk)@ZzfPsn$-Q(Phftfs`~x8?wFYe|P+Cnntpxc(@solrIP@X2 zNu6YCF>N?A>K9!U`^jp{Y|qxpfrVJ70vP~trW$dZ8`2RKY@Fw$95~u>>?cYym{$?6?c&vO93?Y%5Lv_HB*~V< zYG6z2IND^Cjy3q}P!UPJ9HopsZB%_TTf{I2x`vf5oaaq`0<*R-v;l@mI05j+wIZu*&yfrp2msYG-hp=kOe9*k zYKP;{`A@I&I2z?^2#GgUp>>-5Hv{0%I_(*tF?){R6bi%$n`8t9VosH$mgNU(`)d4# zdZ?b#2h%r$n=Tg^FjBh#wU3%DXe99q3B6Y>SfH7*Ct7@=61wUN2IK9!pJpXKy>)O} z1=OzIvfu?eO(nhp>cM=NZr5*=^*a2D$FN`^(iILvc(0PEmFRd!s2ZyPohv>pD~p{4 z?U9?`j&H0c++R&Az9p(_+voeA&MCH6kJacDrdj46P%u@v?RfY5k!L!`hn_Dr2AMg1f2`?ZxGc{` zYMAFX%S>qoj-4g>!5Q=v??(i}TeiOML2=rclVop}UVSpWUaKnA@L44L%2v+Un~Q#l z^0(Ee%L1SPi#Rr??#H(Z-#?voJZgPLil?DoaU2@@yntYONk0%{{NS;n{BWl!(xDn> z;rPRVX}IqosTL?^zuHknv|^q+4vNWERl|l#RGH6!O+D9D(YbeLXl%|eS7CLfYFDRh z#$7lL$eg&J!;-gtx+O?Zj7ew<75@(2;5H&+F!yudW3~#EdT5Wx*6Oj1zPzrwlp6 zs{{4Jq2?8z{$~?bE7=8}j>NLjsq>{nP6LfX0*Oc|E@Lz;_(p#C$ia)`ddEqHrAoH2 zuVZRUihm;>Qeo&8JyrP|v-@*)LSwdOjnNHG0`mtwM`n8OEGC+-?{gCg#by#=A#lUA zee1+Ab=mLdfcJv3H&oYJRV(2X0s$gQ@yz`1Y|Aj<97#Tb9hI-P%Jf`V*Jqc{Z~wMV zx_lCNDfWw+zdJsU71T`johN$OhV+ag%(&^4FFR5aOFDC&;}(N6zo5=|z3X-x61Zcg z2NU(ADV}#)6|BT_TRDF)S#ljJBrhHkZuE(mFNYCvB`E!PgZw?1UtU^;Q zbZB--w4dTVEp>oPxJUO%IMTW6!BC9L8noHj=+rx3cFQb zNMQ_k@xt+jvGGF?E2Q$P+fVbJGZy2Vw=EpAUc!|(Zzn}R{ z5%pg~3xSxufd@hnN)o7-EWcz$L&sSvkEN;vm_v5zUXFtUdStU59^Yv%5;d8=1Z7?r zD@UdnpjQ)48FK4>*ibQRUkHRl`?oe6;_EVf78+N0^*i?&9>|H~;zLG2KB{=1A!jr8c2-c()q1V^Nx$0{G!oK_EnzIqX|5rRfG~p&qZK_&VKjh)j3j1dF9ZR zA+mSr`EBBzSq!tR9eOECYJKTEXE=-Wl9n8takeJTnTs|TH!e-~&dVBgWIJ&T*7KWM zcXq$av0NEju2D06sn%93M92!$&GbOs*d-PTe`(quYG3PLf zBIi@ivp-V?B#Jjpgo{np7}S(6rM?bilMQht(l>^)r10*4BoOXjLS)5&cPMJa3BuhC zuSyLqT32#&bIb?xmb+WCD@fXk?$7d#M;^JpG%_ie!9VFd_F;K4nyIpyM9XV3p`I4U zD;oT|Rf6Y5esVsGNZO`G>QB$8_m|TgX>=G;j&&XtwVxcGX=R`E37{BP_dRdqKiB!R zWQ*+A3g2P;*M?&vZov}R?%U|&EsgnE$2irmSvXmlvro=_yzLQ$hGI!y-Ks3}X7&mge5vF(KZ?ZDlr2 zDMiP6avRk{ZH97Z%5fs}O!?~-%FgzprUV*Cc)n)s%KwQg-n!@bsCk#!uaQTY6$Yk6 zF>Db8_J+>R=%a66ffQm$M=J5|M@YoZ)u8lx@)PaiQ{q)>+v<+ta!}37h!!ZP8!6Oy zJ?s;~IUCy?>!ex|S-a_o`$nRJb5klSCyanWz0}7w`L9k34>^)eAFdIqBRl zC~(m`GruU(B6ne7fH?Yi1cBiG>+PsFB!p&wR^4h|5yM|c$?3hPT*FU9Fqw))aN38v zwB^newVJ-J*Km5Io@#DvskK`aC$p3}mG3kD+9P}YV$pg&)7Nx|Eb%2%5#nGPSps80 zXAk^$^{vvv=85h)iodH#aIdW30t?!`mRd8;y(-lMWw>5C8_k(7IXdN?f!GkI6$^#| z+l7YSKV4o|$gx+o4p|kc&+b2qIV-MR0(-RUKzk$J5#et1#D_7DZhrH|)8LY`per6h z335``wZC;cCTiM?6}Z%P4R}lR(JCdY)AkhCuFkENHh#}@(Odsju2sH-b%G<;3t7E6 zT*Sd1|R`>l>-9GP2Ly!7+g-=-jaRTneO6GtsF)xtVMf!sK z_^)3hgGZ)v*M4S1q_Hyh$`ALmO~T{_MY2=nr*#4T;End8V&`#v;q>9C9GAKKGY#a$ zF9H^)ribc{C|*1LyWNo@hkG#=m*L;55Z16*H8r$CoR?xdwHM2jKfYnM#ya(qyk3QF zF0#XAVlDOAGl&?A-;|2_idTkH7fLwIYTAp29kh*FiXj?o(S65{M*6Ct=cCJv(3ZDN zB}WwCb0uf~de*c2^yTH?--URJ4Q5-XdR(wm{k7PEBb99%LIVym8z(P{Ea`*#$MCxh z*~=Tfzl9;ZAV+VF?@;L>92%dsyn+83;CHZ#Y-FYMPUN0ChljD5!X`b_lYfR^K8gGk zC#+L?;+kK#mF?88By6AK?2VbyqKVYAnj;~V8)Uzz!K@85$wTl}gV>%DG@r1C3*|IXf^7Gvw?b6-N@x|{J4_u5K7gKZA;yiTb!UI08aoEC1 znVa6OM6s1m@kGSjkN`4GSvSFdL+1sq2!c+_^#grY5tU|j26~moM@?Sv6iq~?I(Mkq z-y7}4*iSE%&HNzusdU*~TuZg9Z#&|%@nrGP^N=>y2m)0l%`E&kuIyn4hmv!X5#LS4 zierisgJaJKI=M|A?NtiPJTGEbE@d`6$dBw<;HK2x`UN;090rDZ zSxA18)QcR_at3#p;c~;$bl1XhOoVJnio|hWD7kKT7bQPowtDUOKf+3NtBF>z3*+jjd+Abk%HsdP19eMiT4Fc9*TPoZ%pBMO~SLf~X$jleJd( zt*Xm&X&}G0>9ag+iK>;OKfZ^IrwMc#PBP@KrnrjurtZg$d^1x_>j9URJS}vRJvs+V zZ5g@_jC-zyJDe$+StHR|`=aFGhC59B5H2YA$ZQG!?JlJ2L7*!naPZ^y2W|)eUD2AI z?20V;h3l(VKen})EK})~&_}~rr+%^7n5Kd}b*>?Nd3I{@wF7oTWn8epG%H z_W!B?yXte+RuW!bANUiR83UF}rX0KKT5=1CLMKC+P>&^f14C#j=$#C-(e@|1WCj70 zihqvk>A@rAr`pb_Q6p$$z3lmtBp|PIq8cj}eGn(}Wi~DqZFqR-fcl*~w#KS1Y0++i z0UzV`hVd=lCI2`BPFR33AK$9WXc{gbwJwsjQFjBpVWjMQ$8j~@=W7yJ*Pz}RuiVD@ zqq^h+W(D@PGQtIe{4;*+ldmCe+0PA|HJ`&oV6<0@lXvs;p&o&GIvVy&&kb)G%>UZ6 zkek}hcZmuwi8w59na!=*RM_c-3$;$<@w-e4I5JPVOs0Md5#^uip|7OzmRdN*Egqo) zGIq^AZA!>(|!m>psbLO4kUbulL>5A8s z_FZnRZ+vz?b)qC;rkShw)t3Eg%*^~`z|WD=M!CX7EIa0h6gakeqHULjAQqtnE79~6 zvKskUFThFTw`S(pc{a~yopK5P{DFyC_9UqL*9Z9ikNLAQ zfRWd%xI8@fLf|$)cFOgb%pY655f~++LY=|R$5rEJpsn@blbJXuyNS)6}-_%*Vdc)_d zOY!vUWgo3xMxF_m>nrIW9g|dZ!K?-eRk3*2i`4-CvPe7ur`2r}Yzrssqp9^pY#gTj zoLc&L>2hhN&DUC7ijN-{wjGuJ(onsI$5MHrj3|Sa!)(!aXYHk5eU7A*fp1|$JR^G0 zZ>etw%z2p(rGrJp^DV3IZ2I=@&P%a$S&Oe8sN*z!1-t^Mf0(m0I4Uhj80#T*&t=yX z$jL92QwhQhfxR zID~Ji2v3&|q+VS~4-oG5#hh}rC&k-fLZW}cO1#BmnqeJMl~dE~><9v6tyZdxPgnYC zY9q`@;&bffU9_%{JEXc?-{v{Sga#BlthYw8En+RO;E`|JD$G8$XbaynHAaQY+)lg9P|MV;*#? zGo?5mU*);L6tY5#(&6(6XSmEN9G?FVm;d`N$!3BOT4z)ch+d2223w>A_>x^k()9Me z9z4A3<_}U(lkV$)&t;JeV1rJO5MRcByZqm!7>i^EW6Nj2dfbNKG9fO+1o&yu29lEC zrY8UXJ6IZ~8U)A{Gc^vM$7;c4Her@WiKk*PM z|LgMG1fc-?smO>Og#BqKfXmGJ5a7RTI6@1SHci0$ipI`+*97 zfBts)zbmR+JnUzJcl|6pp}r?ag&3K>r9-_7O3!>glfv@sm_%D!)1?Zmf@iXeZs{14X z6l=Q)9)MfX166E%=5ZxHNs$JK`=P{Fzy;gxj1ht-o_H|v33=j=fS@Sltk||K7<}$u z#fLPG?N7pd_AE%kZTHwEZ2R>e|ArqlCOzer^)_7&d0c&1!c~bD zyX`9@aN7$WjB{UY72c9dTmkly9FC5J2Z=ZiOL$&tEx+xi%ot{b{b_qJ4&4&l){}7@ zJezo(^exbh4yO3mGHqaYVRJZ4_grj@A?%;>?M0gaH z_o=koZVKVU+x3vXkc!Z0`20C@#JYg{;V}G+_J}J;pWuomG2Wy69e(}W&4p0^P^v-` zPf~y1T)^8a>A%6-`#`5GG4}-V>pik@C7%d7`3x_JaY{9GB0GE~VvUoJUTQP_<(%M2 zya&WEBVcgRef$QV!1rlkrYx4}gkTn&7}$?B0boDyxw?P*zkmof(1hToH2jy1pH(O9sqcS?djOAclJO@{`$(chdX)5c8>MYOU1OmwrKi^Vf}Wc z20LK>0OBu|O~g-AFL3|hitrL8@J4{*1EOAn;4_rCZ4LmrR4)*+3nx(@H<5Xs$WwA# z{qrAgMZ3i{)|&f172SXAf+s&Xk`pOVsiUrNe(y-<1Icn}M13SmLPU{d72jmWz?2eR z*ObC{{w51o3>DD;zb28O-AwRbf(pznxl|GP;?DBb3l{eLs8@X+1{0vULWknUYSc^A zFnZFH&ynj>YT%kZP{NBK0@c}jCGEsEv4hp-xSr4-pl}@kPoP}^D#E+RMhNxj-@uK8 zhlXI0L9A^TsF4QCvTmFFb5D8+#_0b3cz=FX9yVO{mTVj9Vcbu|di;4c8aa>}tz3I1 zp4145A{7K)j5xp6oMY-T`Wf7(Jp|P&*`C+kvNSeG)N&CX9$wKTZw#@7M zH#~W{S;NzG)%JeFUjrezr51^(T~`SIlLMD@Zy-xCBhC=Hd;;|pAT-zi652Kk2&N4@ zjM}s1^eCd| zkys&hiv>`$Zen{qZ`{T{-PiU3?|}%3T&`jWTO#p!TuS{r7_yA=margXXKZVSe}i;f zF+d{eAAEltq_)i)m6Yt>TvnKQZ&PWddt!H^8_A?CG3hVb<)d4AiPJ%%f=5v%^bklE zK^FaNd~`u7&(%PE#m_t5y8$vhdFCHmk2p!cy~4X6ftxV+8@sg6WcZRmslfkrI}r#x zeDRI)Klll=4?J)986!09{(movf5%gRgSd3gvoxm$F z(bs|dQ2h1wjoEgiS@0)A-%3#)=^q5*hG5$hY*+E+|4%>J*_xfL*|C}(tJ!gAJF#Xb z*5Jbf{5bx%c)bGy{u_j*`}73wzj^_F1Hg9B+74RV0n$4;&Q6ZAlYZ_n13S#Xe*nF9 zNShr#ZHG_Wp*nY{&K(wdr$F$Zu>CtJ=T6GGlXC8)oI5G!PRhBHa_*#@|KlEpofeLr z7LJ|nnw{>NoyMn~p0u5ww4HXre`qPh{}lM{jXktovzNEuFjo?+yC$MLNE7O zPc-ZyAb5W7`WNb<~~d&7>%2p(MUx zLL&TZZwGgZd)w<)^O1NT``GcF5ZUJk4iXWQQnE<>&xi6mkI2!ilCfm}_H=)o_Q6k0 zl>a_@|2Z+yP1N%V;{TfJ0E|CO7*9%&&p&O9U=PS8A=m@K9{%oj3HCs+2ZB8i@B;xa z{R4&){2{>~68s^-9}@f_!5{venjqK%!5#?q@ZY=~0WT5o5&;)jy;t9P9e{1s~U_}B}Bw$4XRwQ6W0#+noMFLhN-~j?2 zAm9N49w6WW0v;gX0RkQ%-~j?2Am9N49w6WW0v;gX0RkQ%-~j?2Am9N49w6X>|DWOk z{-9{};u_@|Hn2Nt|7b!wU~f*5FwAW;4b4 z1yp_yY)G#53@~G{SbGO;{RXDG`tz5@7|Jgky&!c;nB(vl%SubzUXjpOX}3Rny3dQR z#ViS9Q@9pamrCcyo#>Z$7RARA{Yw!Yyn!OR&GtW%_!mz=+Bbtlihuq5*9S6UVl)|L z@V^r(`{P(lvXA`NaAML6l$1GaQmQZh`}egyk85K3U*-vvl4=b(aG&gdS^R~d%in$X zUn2;I_zy)9H1Rj9C79EHTp7Z}{+m}Lc&GpHzyufjH)l!+cK;sG2@(5mi4y^K{OzV7 zE|mZ~2(W{YPyBn@LbwxzJ3+V;ggYVioPeGF-@s1RpWA}}*$eO=nF|4e{0AN*Fdqcw zg8<9_J@ydp1mR8)?gZgZ5K3SF;Rgux&EKj5lq~<>#tBdMQ*^#><*1r^RN;?TwfYk6 zrlG6T!}$?F_xB3L**h#-&uH~rD;kJ$r#u`^0s@vwCmP=)sbStb6FvRqnBu-x+sR4$ z+9Ol$AU~{}zRvuGtZVA4B^NRo4V`cDb;~F^HDSaD)ZTzn>!HGP$Y0EQL`S5UOmV0s z;1r8goHy|=ONCA@6*j=^o=Zef6!1jqw`bMk9(=9*`6wifLgv`+mJrXIp0ij(b{QCS zfym>}xNFs+p$~DFZz2oZoutg^dW~a2#QL<3NVA&e<^6@jFXh>nU&133BhQ)GgI#&O zuDfMC`|hZ8s&3;NqP)(}rji(-?Maa_*C02<9E^B$6z04bFSY8H>>P-3K6;~1y;}TH6Fj`b zrtB?uO#N{DgRic;+k&*nOO&;DL3dQek6~tI=YvBp<;qA7z`QI4&sETMcd0KRn)9Ke z%+ZMoRiZ+~aT!i``L5mm;%g+Ao8|D7$RPq_pT}`ay0F5SI9sB!qPwcK>V<=-E3nAa zWfqH6&b;sYuMCk8qwNpvpXqMgDZcAJo1WUW3m!urtjqd~?=?J{A=_0ex4}RAEp#1TsAp#};Y8J7LP48Oprpl4AwlFZ2a5rxUJE7+9t(pB zKeK#3jGXSU=lAa|%=c!`|6>iBuS30ySk$Fm{CoEZ=jJ)F97Cq*k5T zJbqsx8ltbgV5%TnCO+`VoEcunSHtzynbsDxiT#S$_g z6HZz+m(c}=$Rc#`9LjR}Fgqem-jlVv0|6d8`Yy=qQrs{sw^J<=Ho!C z|2s$|a0*07s;&tWeAJ5D)E2D4$(0=8ih=*~fZUL;u)4y4L=f1$R6LpM zLeuYUOuV0<_|mz3DTM>wAOX8P;CYsew9kw0Cbqbv8%S-xum~fa8xt-EB5jqp9Q(Z22udC z{Gu;kgcSmH!IlSArIABFj9c7z|Cf!MI3COk5Onpq7l`cjB8!RnkHqk+aFVm?Qq|qx zFnoN7a@S8COzN|sKtA4qG4gM}o`xZE++a<1Til4`nl384J&26MoIx2k!zh!7a1|=B z)sb}DX;ykT5Aqt%PYMaPp#vdGu-{+cl74+Tig?5?M2b1VISV0(!LZZ* znSUEm?3sv+sRo4!s7p3_A?t9$76%8zg%M$Mfsxy+VWQ!A9VqJ`cT$RsJR(6lSoO(r+husHtPVTX6tx;a&c*|0Q%qq&HVMb%eB8l} zsE`EKr%nzJ0jKNf3hQia(j!Y&LE8;=e1JM)a9ME2>ie9g!HT7x!GzBqkRWQk2_MNK zE$d+Ji*KI?Vp#lgj)4%bd4Xd1HXqR-lCp#`Hft?2$awpMk5M>>=PR&B7BB(sGYL15 zSHHrmU;Oec;MLRjq zFy!MM@ROg7P?urIQRH-wRJgt27#m2-*!eh3pi@(Z(l=hBXWVJrHy=gE<_H75P|59_NvN*?~#%Ky}0)KA&;NHoA0`mQsJ^m;owcf>HHPMN{nDg zMBC+iFys^rk?XXOM6Lk25z-1rUu!f&o}C=IMf7I`4sA__bam zL(anx?+El)WJnwgd9ILq0fziyWie@}8AwJRhrr{9J2__&jVi#KSbr2R=*0{ie(D*_ z4`j%D7;?J_yKfiDFr++D>l6(6cXMg|o4NceR1nPN|2}h3U~BDeKO5gCQ|WD!r2n*) zS6@Y-#eg0RtNVJ%6)LcUYlxq(qc_F%!jsDYCE{es74GO%Y%>vm z{pmC$o*I)j)Zq?&1s@|e|hE+>6l|1D(o8nrupT=4V z^WNfcQ0B^n#AB3AUf<00CAbes*i7Wgn!qkU;mxgKYso>dHN{r1OGQ%la_H_b(}g_F z`2f)|UHW*u?C!z4G}!1VQ7Ybf9cIb(pLJ7pf*Ut*4t^^q?w0e`2Zp)6h3ygZK-ekz z_FicpTf7GEL3?U(jqDhT#bx393$pBy4E26`b0a-93S21{{q;7N!n4?&C)4tmKoxz|DHohooemC*VKVTm`b+k=J zfOT|y+2WVJpFbZlNOVxQ%(`>97tH>??zs4L`NXnNx!FC>e}m&=;J*d_lBgdCNVGU6 z?EX38tno}gGy0SA96C%x51*mZVsfv_cd1#^TYy3ic>B>U?T%P`T=AkxL3;97#5_0Hi;FO}`Mv@=D zbFfWci7*mG@hDJy{|^6_*J--0!800)I;ZvYY~}l}=vR$%;4ag~9zLdO#VXE}G3UbT zUZSrva~&($OtCERD?;I&lqC`EUTQF2l>(v!Ov??^&g_OUBGcZ2X&KzEHYA=ju|oS) zQH@uwg$^H;Ox zrFI!(g>izX1!6C~hSyG`v3C#~fNiOtFw{rF)C6J!4!xUG7m$0uRNdlRrfsj07Vg$1 zEg6Kq*wOd{OS`(w&V=8M_=djtNJ8Z}Y(;p}A{g1q-$3{<=;*aoCP}w$T*3qIh8l%{ zd7dK9xd<0G-&s0=G`w_~S#?dby@nEY$F{*IGh-{L){@)q+QGjxInPJ8{+fTR_(`RC=hV$c?10Xj zei`RWZ`~8G!*NEI+vSjunhh>u{4gDY7hfab>9Zfr`v58XqKU=2rO`-vOFz`OHe-CB ztV~JilCc%5o6$IGVcow+-)gPqeaWXz>9~(XE1Lc_Q}R%tw6OH%z+tm4`0@ z{G9!AG7-UWV~|=2c$~l>HnRcA(c--4nQPHf<_Q9pVVPn~n$9j@ebTl$*sg8+Hpw@g zqOG*^44W5s1038>zfokePr*#ue<0%kP{#IH^%YD)d>$O@LHHLOt5mC?>n&aaV#yX#fmp(DRb%KUiF;ah*YrmVvuN7j0eA|}ECvq#5KAgJ^vZ1?DZu1}Gz z=S-1{i@6I|%ykYX-C}l_5`Axi!Df==%|cMg&iE7Kp6`wp_*95lL)8n}95%xDg?!o8 z?-S)BxVl;05R~x|!Eae!C?vHpLp%go>gOhIpc7W4kH~ZAF`eKoWV4L1GqmKuDaKBF zH_6)9P>J?b(H{}4&dlbBpzoO>`$7Zvj7IH0lkHcq`&VId)Hi;*)?&^2KIeN3H(3uX z8x}+xh}zBFv)Hzf6)PC^TW_j~9C2)^s~vQmIxqEe4fKNDXAv#{%4U0^ilF%fnm^Gc zaI4oPsX?h{z)8Q&K=u{oB<*X;d=q>EMG1} z+=$yPi)o5`;tyuX@{|mAB`>waiu~|L7Kkg$LnruH!a(In_DxGM}B zInJo&mQObl_k1Aku@?E|3~CHXd8~w61fV^*b#ZIDwrerZicCr(9~FHHI9jmrdBa67m$dOh`8=q2!=bQXekA= zod$|dy|Y;hp{l0-0y{un0tQL>DnH^Wotm2G=Nfr0jY1S-&po|UWjl`YD}G5%{Su&)tKTDEG&W=3wlQj4=}|Z}oNvF`PKTGc?BJs^ z-dt@{G~~^Uc4l9-b<^(I$WhgLQuT3Tp|%}Ax_PGI$<8OtLI6FJPYH)a9ous1^azDI z1FU52Y{~{J)q?qj*c>{Bc*2|D#E!Pf_~d_+TD5PZ4jQi+(%X2XE$L=zi?!2Te>1i0 zJtK_Hn0Jxfja_p;<5DA7CX za=Xm~H}rCHwp+=)PG6LJfp+P0aBjGw$)fw25vqgo+rH7>SvIKMUa;l>iI!32`EWgGW z(Bl_=wDtBM>)u^Gdbdj8OAe zZl$NlqGW+Ul_)kr_lwVO(&70wUvx~(37-KNE6Fsppk*PFm9%+G$iqN8u<6JYSZ!)v z{sNp^8R63&qs$+J5R&7cTQ%8L3aW||XI(+t*3>=}nOt-vkNsErL8pUP& zHcs-d$}Sr6A73q|DhgnJ7qdGkKhhwEWMS=hZAN1@^nCDR+Ei4szKjnr-@kvKn1XH0 zpqK+JJp}9-B~Rnf2|Pp;Y^`EteH2wjR}ty|Ndk9YwEsObFJ2ZCdhlQrtbuMr&APTv zn+)YsIr7qDu-B`>wtuNtaQ$3k{~#Vao83{9dag%Bbm$#p&57IdY_HIO@T%X{*?=q8WqA0Ote7^qpQ`8 zNW>5WJ&a8ThwCb{xVVhfel}F-l982;z2G_sG@-&$KZ4HNFck6pP!jhZMo1 zmII%q=76=Ues^hU)bn-fXmz+o<(HGAJd>+9u4U0@iK4oFTb5!a(-_{d;c#?QVa8FR z`LP{pUTsb;B>8IshR}TVc!VTk{7~BICe^v}hM0&EgU+;AEOs=go3-vp3#N5@#`*oU z*@KZKD#L+=#le*>Dnro#X1aFoEdTD+hhnDoD^*AGnhFG~?T^o&u^S&>sP^<*n80f2 zH{9pIo3%fc<^{Uee!<9nU)H;6Ks8tI=jy|7&%LaYZ_W{6g1d)G)*sEzsPUEBEVD)T z*Snq5yXv`guE)n^(67d!mD&N!omLwIRc=jPrlgNXSd4VGjP+B0nGmxCW(aaZ5| zoh3TjUC>j#ey&&{`;2r}=vfAFJR_2oG7ar&%}mw*z)DgSXmN7$8TT7@8Fvl{?Nx_e zd*-_MJ7z+haeCG2ZLEd61eO6$zjNqNU5#>Jc_4(JTZxM|5GS^7cJM|dWwYHvDkh_Pmn!!5YWpj!oOvUoBrB74 ze&X3Ig|ouxW3#hxlcs?#*~{PepyhSg2p{^NEx>bHAnY&Y9pF&qiN7L+9XW305QER1 z3Os`&qL8>CQ2ys<0qdnSPJP?0+7a$WB2E$4F-L(!ZyUe_;poiCBQ!cpKt~`t) z!~Ly5?nvF$nS6dX@h-e(Z2y9c>pISVg5H+ibW%`%kenvx_rSqXBwM-yx8+Ap`%O4- zU_6{x*7cU&J1M}vX;E1$yJPQMU~x9SM7P@mN?C?O(=LD+03nH>M0pI)RP2T?@!oNK z++vlIRNviPAObNt0&rybuc{-o{NGuP3rB^RJx(K(N$-H&#lwepzCYu0mk_-NEYp>P zJ4mD;jRHO5$l>%XS6mMcy?FyhJV2ZkI2&OqKT^~%=Sy$I6#$o`&~K+`?+DlBuIIBt z%vSHj2VyHRHtGJC;@NM@ckbccS7}=3235ND?w#e6K!}SXS;0qw0YPrYBf%xpsaC9j zVEtP!m>=$X(7ufXkcFR}C(Vs^aTIgfn zM(Z4za?j#nc8MS337qe4aoa!&SqF(G0fkR;sUf7c6UkydNj<0K?@$)yuc{;OE|HJS zXSiOm3@had4YI)Hpg1v^yFpD0qfIR}g@>3caiuY}F|-af{nH~J1!M2S1kE1!KgP3_ zv+ur_QysDJuqt+&s8|m@5#zrmG4MdZ=4A3$@Q{hc?+`WLLyl^P*FuiUi5%6SO95(| zVUq4f+iy5`KRZVnx${aSSAz9cOImH)6&KH!T*m=Nm14NZkJVT0FZ(&R9tpX#X*~Nc z_d+h}orG>-yE%(u>qq)4;b>IAoFCUkkZ$<%S+&1N>%TMN2&X}lV#a<7D8kBOGX9Ya zjeZRZTy;)BQiP2sYof-*7)G{);-Z@tk0u2`Cw0uHnTNGvMeY0;0t?*z(?}KN)$;w^05ga&%bQ zT)(^5^gYRI!&1fN82_F%tG9px1tAtvjvwA^XnZ`I3kg-1oVpHzJ`}-G7KZE>am~P! zq#jK9P;s(0W~mF;&9u+1X+J~ti%q9YVZxoX#dk_FCu`>%UALw)=gPe%QoJnm+zqYz z7>0z|yBjsBJxaC*!vyTj3_Kr)XQamjb>Z(Y4=p$&8D7-%JSYE~+@71T9=VzTqE|W4 z>m|G;QuDn7T%`Q5l>Vp0S;kI&mh@*D5*z)F(4_l!Wv9QhW{jWSm1vq#Z|eY58^Y=` z>K#1|PM=AThe)A3N(Gx{3+Vn|Bn4 z^Q*dfzw(i~3d>%VdyRwxd-(XzI@Rm)*ETOt$0y(T`GTk`5aV`RTiEWtSdNJT09_~F zNxES9T6=(Yg06+)?j>$I#ane_*WFhuNyhiKm`%{8UrRl&75!e>B@wEcvF`XBpRn`U z?DS-Xrj*mKdm3q?`Ft_GnLL8bI4VfT-{sskuLHU?B&jqL5yVB<#-~10J`lt|YxN#_ zEJZrD1}?H`QH57ZGuONG$FkV?O7-vYSfw`J#Ga7A-=}yrD6)KisR&fcY8a6Ezz*Bwr-1mM#`5-aImJh}1E z;gLRMuV=f(vW&3`417Fu(H{B&QjIY<^;Oyn28l>Q;Er8M=(V@afVgb_W@9)70D#Os z06^+Yw*%`Duht14ALNytq=}8*ju3U1+3tGhGExo6_mlD7TA~zZJ-0(UnM>=Qj%MTZ zz`8n&OyHDOVt%BFIG6))%(mg;2UNz zvczPxYcIg(Gnv*2#D}{AL7PpDgv>_>vjUX@Xgk48rgK5!4|rg%pr>ZS|NZ*`8LfHF zA^}^yHI9W2Zr)0Hm!6t7ejU9H`!=6wJsJi@@ZEFa9=BZe7tnkzGo2=1bF?kOZ@TT? zo}Zk;-`PWV*mMP<-9n$bSbmb?8fzz++LNtLXzBV#)_4oK@`d8;&@1A}4rH6a-S~Gx zP1ul-Fd=s%&}xKc>Jtk{Oc@lj3|o%lJM1n3Rcas@Pv%46052W1fgGK39qG{#-S3X^;tiBg zqT7v9y$Cs0auc1n@NPqjRb`)WYKj$o)93}%;hlxAtP2$ZF<&A7er=Ikob?TTbG&zb ztQ|iR>0^aJuyO31R{GKtGl!KZK)r(jdzlN~y&fYSwS&r2=bzpO>H3T;KHgs#iY$=> z`<)9Fw11-QA-6lG$+9I8RkF?kNfxX8{M(GChbQAx&Y|2gW-9v%Ja>B$8pm=C572W+ zeTYXZK<^EgL6oqOSz5H4nybxSd-}EkUF#s@X-QKG>!@7qrM?+d>ydMLFPPN zcLku@G=JzUjE6=I$ZYoQu0aYeL0wdI+{q|1+WIjV+iO49e`HsH5a~|^oq(Fq^KuOY zI0l|2H{d<+@Vd4Ac173FyXi#UREc=Z{d6Rmhr}Vp6W^B2aX!*qJbi=8s5&onkm&@s zHeQ)&<>8ic^#uKdkI)HMy1n_WGT+&n6Qp>r7wTgzo#Q>&#vl7RZ97mEavf&mNX?uA zBp^_!CgKugLX+j@u`ysh9hItouO`{+X5E-W@wmaZ!O{}klZ?vu`~xQiT-k2gXIYKZ zW-jdfUaPF|>8{N8=cD-Db|**}@@n0^5d%C_k_Ke@?lhU^6u{lZu#O=lY$9aW0_f>` z2!BBV=QWQrI&FR#9o${3XzAurCEgW?wv8WT()5OCaeLcrnsZ?Z!&@`VU-OwJz@p(M z_KbdF_ht$!DM8}dvt2v$Rb^=Bbf|?4?%J%J z?YrIt+^~6wVmOjoorUzS`w#ck8*ss|c>-o4i|Eu=X&huPv}iA0ANznB9n;hh?4SLt zml$5cGCZmxJ5n$(U#XAR^|_UFTz0SgPX!i0P8fK7vHU+{`7VPLe5St~&*7ylCjmYn z7{k#Pp9+|R=`mh z%svOsp0YQzFZ?rsn{#xUxB9Du_-4dHPl+Nn(Sa;znRNs1@?y3S(q42FX;6E3i~9{| zzW|Ky*<;?3IH=Ko%ypmEo8_xjVtY)AVweAga>i1h`i^XYVI zWzFwIvgtnC_d#?dqJgI7)k*zG5!Lz^x#Bv^ zHS#V)ezdE_DDmGR(f0IH!LKdkIhrt~>yMgdW(vV8xCDK!szY&7)RyhzG$$T`Dwmwb0rVb8V zF^hT<&RQ}M>*`KFnVy%L_tEG^OQ;Tpo14$3u`}OcuxDhrDzEb6`_cHSyVzf-^V8om zW2pA&i&PAb{FJ@yUfefsVcYD}r*j14lNy7N%MDbK`8rKF3#dH;IPh*_1+&IWMlJNH zYu5Iz=99D5YyH!aW3!)WQ^Q}Qk0`m*D9t#sLS<;94l7BERl9t$Lq_49Y)C(oLvx9Q zk$?1qw?S^S(`qd(4r@^oXe`TZ-;yTV|a_V|q7a7(`%0 zhsw4dL5Xs?Eok&RP$-@xsi`2T-H6mxA`WMzD)TMDN~OGFN|gT`WBY7LZfx+$smnh# zFzNk=k?{2%oT>C&dM+Y$U68u-U0S248TH!NRK_)Hp##tYX*}g-vg9^-tjU1 zCdD%{E^sa~S+&2D%}j-RxXIClYz%KzNQFy^6{^I&dNEAwnf7f(oBH?@enMm8P`h=S-(0T>2}PJ; zMXZ2skQslx>+Z$mCM{KnSqD6|LCyt>^hhuvfz42Vd7rBzV~nsH*ekoM@3x>OOv0Cf zzKuSz{b5S8Hg~kw6MiAQ>s$+ETzK=+=%9te z{G_A)UNt1#vA#MwZ(gA(T0d%Hrp z{pY!hL@mRtrF|`?YYla9=t#|{i;(75S1UO{q_pzeqD}WFW7JRK=$~?%A>1M4!Ma`-v;++UQrUClbb zhsmRa9R#}>`|0*_0F2sOc<^l5ucsym0e1Y+_rYwW%oBL{!Zb3wJQ zY)H%0yDDf5>7}58L@LEg(@7g>xI-KgKCzZg=VJQytGp?StmH%04!+)H1tX>FnQV>M{A=H;@@$h4@m!}o7hcV9QP;VEoc4lg_jGR%|b9|nP0qdVcFvABizAq+Jer{ z#PXjiK)g2Rb6fsZtN6Qs)PM*VGqq3ryYWJrq=n?DP_Y|6Egd)LafiC9Nd(FE{%Y|- z_VSNTh6*Cp+Ci=e@t3nHUwu-~;UQ?Jwuq&!-NkZIBB&3`FhJEZ=gg@)RL18YHF>rj zC5=L9>34^H1*)aX8vnaTeb4GK>Y$+UXEpFRc}KOaZ*Xnv*=}gUSKbu{x=(k1FPY0BTgpqIfsabCHtsU!F&U~rWtFKs% zAy;!-3Hb%VRFeZAQ8vA@6Q8nCl7^%J#HFfG!nFa3JTL!4;uZ7wmP% zWDCUT3L%S;qfmb6f_|RN^^kn)?)s_O_?1$fYopV%^F9IoGw)>cN*;*Ug@`LnKT*uu zu_n*@#_ghrg3PbfNvLX>F9z3LiNChdnSDTr{F&ZBQR(JqKaA{}%<3YAMi3yRh#c!g zq$Rr=X(-cGYTPe_APr@uF>Ddmklk_7NpkM))*k`xL8EeF^}Y9HJ?(H$PfsWwUUAQ# z#5tn(w%P`4rbdps)+J@n58^QKYrGE`p+Snz$Txb*0CfsCa$2~}X1`ZupX#%>&|9Wh zrZu)U)bftQ+#A5EBLN&_udbq7h4|T1U<`N9?!0Mej48vKjLfXB0$gi$>ZuA_yMU)o(FOU_&lD&UE;d=7Nw$ zKW(b9&KZ5tMKWBLvEi(U`xW=Bjn|HLdoI@7Gj(6i;Wq>g^M2?GIzLzuY(GLX$iOeF zayQenHz9Nbz`J{nPRmD8}Bm85vk{k_))47Q%l;NEKP&Q_+R%& zN1)!hvn|-pr*b~~>B;N7PpA6B0Z@xB^kOw2HM79qZ0)vS0fAh#8*3~L@m7JTfR7KVU5^PQH_T(|k2S?rikWP;M3x75xq zsV6ih07QaAQx|^^K{&KR$iAk2MAfk1@Y1xTVB<`lGR(j*^Od!E|a-Hbpn~I>y!zwhr#O`-L#{(Tf!rX zN!Hqp#*#|^<+7v@dpdu|5TvaPB|g+S{19ZGBV;xsE}V1wwR?agw^?&V$V;+<5MZw@ z@N{}kSgk`DzL-_n$fuI>X;cS#VcTZ?s6=R<9TFV=thf^6?a{yPxb0js-L*4e_796~ z*#DMaFBnhtTmTLM-@?RaFS(f>&-9A@y@6*f%U*8I*PqMfON{4JvIIV`Eqh=go13>f z9VAC8ZPo4WFR{pT4}-n{Ri zcpuFrV!QZMVA;{A2bH;3nH0)^H5@A74*>42`X%s7K)R_bt#&QVCQcftro5I?^01nj z6FCj~;MT?Oxid%v4Pc|@E*Nr;rHyIqMjjRem8|dKidvWp(#4vVlw`iFg%~)?vqw*q ztbM*%FW+U@hZZ_3T0%Y(`^{>6_CQhj+|1mu#H1v-ga@I;FzAEaDK}>$_70aCTOS)X zb&aog620lIM+et+<2=vujfS<%8yz3{&PU4f$mhU~NN(S2FAflq-p+^5sd@*fnAob= zO{$_coD(eKsk6fO^5}0Rw0T>LPnoxU?V}e_^H8BE;m$saKNUZkb1g}mcW>f-@FT2G z)~~8A-a@~Z9#Y5MG+hRc;u^aRZwk_TMw`6Tv*PHSq&i4U`R5C)!_iRxg;MH( zCnY&$&TG2<(z!;521k#mkY67s2VRTjKAR&-sAR|Wcpl;opLJDmLyO#ZsL;Z7_x1?J zQ(kCh*2fsQxa|s}>pkv%wZ3~*=-VR8BjUy_wSfT>jDhIh1ijtymD;q#U)BW&%0_s2 zSt?`?93=iB3kL6M_Wceld~oe3WljOser)6=n`VNu`FDFvgWl&~VYiiD$thJ}J6443 z@;Be*`q_#c>5TL_(I`!s(K3{xu+i`_JaCHaL{DklW5K6X$zAqB(+w#;BKSYST1T3y z;GiUQMk>Dj!<0GFmb2l)L?Gg9IBrwiwKs@}k)v}q%mpld31O_fOK?0pZ;bEv0v(WcRHO=ldOr9qow7o}Rq zzJI>TMocNi@{5QVeU2km;SIa;y9HVE`|93TX&o1|Wi6gOz_2Cf>h)|J_oJ2`=hrN#4`E?ncxF8@x$!nMQ;U zX`|=j*q*CIEbFK44r;j?^Ym$Vjp)_j^qvSO^59dEr@I9Vo_?af;?W+lskO2@t6$i< zek2!l4mGjY8a||BW9sc>m1JXXX%Z~fjY{5QarO>oLO(x0Kv9(tJ>R##?(EW?&!Gj!r=;BoL)#R)fdE=}a5@R(mHCd^D(+B&V$Btqx z<(jzO!tO&3uN$$CxgOmd&Ok9uNa}d#b%`r<3+i*kINjCkPGAez)Jmha8yomd_Tj({ zRNy018t@u##SXr})}{*c%Yg1@z{<0SIumIWYO&6W3A^sN8{G9g_kDT$5<`p!8~s9x zHk%w|SK_j7WT;zoOLB=OU-y{dw>lW@H0?@s(1k>XL&h#`EW&+hhp%h-8Vnd(m-d>@(Nnuo0=B9H8;yQy_-}M4sTj zNG$1I(R_~I)(X`863dHArErq>5PQi*%BaxxMe}usNN8e?|=%CPx%fX*&XvxBavRv|&WK(#jD~ggjulAn#FdJzkpksft5KD_`AL4eC z)+C#pa=DtUVkfkW7p=jleTt%{edQ1u$4#1i%^UG8i6AV4?r2R`*w^aO!1uk=rnk)5 z4LDnBdon_b(-cS=;5!u2j`vuU@f~SO%uyYg5vfyW&V2KFtb2xvecNn7mocsP^RM39 z9A2`qr1vhh?incSsq3`YthG$sC%u_o8Fsxyr9ggOb*{6x@}9yr-OUqXXWG3Br`0Dk zdO8{f+b?knRWP%dM4qFQ^oI?x`~j5-4pM-~4tSP>4HF6FWRhfy=Ufxlm{*_6Qm^`Q z{qz$*1>e-n47J#8x~%Z78y=e}VU#?QhW@)ob?#_Rt*^f8r)7EWe0v|0D0aD(zdfTu zEfiCppIN3bHh|soe( zFkI{p>h7s9Wyvu$Iwt!2Zu9!)znd2N%*~i*oQ4n1u^U{Ji%yE=?oU{8k{95;q*8iO zFZqq42Whc#c~o@w)mCUE)UYicE3~6ZX5_5jmMD96ia+O)$JfD#GM(RNNO&1)Dt~<` zl-;z=TJ@6faMWEfGQ_W6>>>x>!>xQnB4A&K@o?)ii2l0u#Ar|Y!>upKa37wG=3Xdj z)S||ov+{nBMt=C_Rv60@#~JTZtBlO!fn|fPsM(hT9ff1%%n-k{((P$8+IF)jB7(xs zQAzz_p;RPd{{>O&+f5#uu{cc}P3^m@*-fHC!tyTiJ?2VvTGR=R(W~ziZG6wWd-M|aO_U3c>8dI(N1h2hv?klj-xyhf(h^qvGOdwP<^#3t<&yMesFLhGXN z66U$tO7UwsKlx|B(y~3<9=i?c8oDi%El;4P6Dz~}{pn_xP>=DP3G_J$PYaGd82gsh zlquxnAIot?f-gPM^LTVh$tQpUm<9=>?9W`?w3sYkA~dJ=*MX|k;MfoR@oNM9W9B!@ z_*e35Q|1y=3Ykn_1*5Y)tjYR}tZF!5M+b>_?}3(SiTs<9uvrY zN$~soz^1gRf}Z;sC+1^1p%=1ir5NIJSd!+jesfZvUSXToa8OW~#4NQ$_Jv>iq>T^D z(=5#Ata`#XBfB+C0gdq&l61bRXTRf~>*`}qlhNM)UlCPX>}rtYWsMm zDy4~x44Vf0wHUvaK0zDu3tfxY6U5hOPbf!(7-L%T_jBZIK3ruWJ7Fy9E`sjmaM1Aby62g|zFHO|3Zkl%Yy9N~a zweE^^IkJuok@cNV?7VjxL`I4QpZ4vwDKmV2OAH$g)WBJs(TUP|GN7DaVv_LT$*G$X zhdVx9Dk)h1nU@zZ{UhG0Q@C^MhtG*b(K}@=#;?&CO+zWs(y770fpWcqI%4iTUx?6> zUg%iy{5V-R4DYdmd$l3qfr&a*=F4N-Xo%3FslgU45szw~W+?Uyv~sL9rxYe#`f@mC z!Z)so%FqDu`%>3Q0kz(urbD9PPkUrv>aDLVsLzmW{{9e(i98yezg~W?*SEq#ZEI$j zWSYG?eOLkofFNw_>Z`0}*AlJLyP`hom+%&>)I(mkHnZArABo0V^v0C~aE-7`V%PYNUBk#AI{k?%LDX+?3^@Bjd~8rr+x*$jXRrn|k|-@XI4^ zgcyNAQi<^CY4^3q5HZh%}p2v4qo2?l$3es0U#W45e z;bb3=8E#%uXz0QRi{`{T=3X87fO#8m#PccDm2;suiJeH%nl!w<$7Yzk9F{u$8`e2A zY5Yiz&a$+P&^T)ZKYsT&{uV&OAWi8Seu{%(iJp}K`=H?-KyI{%-1afVft34@MBQ;d z|BZcYCaVgUu$lVWC5<0V+Gk>LSt}bAOCs8KRecZ8?iv7g#x58T%O7?k&?w^l==qZaKGIJc*TAv0{P***7NzNH+ai%G6mODZ+qmL zWMEHosYFRuzYn%xzwX%C^I6ZsLzR|k=Y~$j4mQKUg(guGr~Xk;X&yW;`ZZ_p$=Dx) z?QvyxwpZvqLp&9u(~3Twn2S;#f0}W1R3*)!JI#ReUNkEe!tf9L$x4%0@r|-#C=(A#D>IA#KG+vGy$(lJj>iM4ff?#Kt@5eDsI%%&=jBg6^PjgVk zZ$ciiGq%bnu$udtW~65D$#$Fi(}l7$SJ|q`rC%y0>PLjHYKlZ>J|}}%n-006)<>Ps zY3n&>@*dY5X^g#XBV0S`X%8_V8|x%$tsbFSWuK9)xVJcPZn|GE`+V>?{H7vw@!9<# zDhOEzj`%J=axHHoXe?oS>>d_!y3H-a3^M@8;lXG{N$!`7n}3>3-5l3m#oY6Kv#do# z^;y-3dYYDe&BUhd8Jmo#jZAchK-}Iq`L(q?6iTo~z%_wlgLjfSgi+Q0rgPsg>)8>rk{&zn)33Q_cxDa<`f^^rEGO)JW^TXg@bT?4$8NLCea4uS5)QlP)?9@gq{jr&t#J1ZY{`m}P+&!}652OApw4kQ!s z@6zrnpZJDZ+B4NpEZhFbP?G!T&1z`6hBFcEIb!Pm*M4i;j`;B-4vJdmBApstf@osX zO4z2C8>+U_;<~+OBR`E@^YD-L4VdzIL%SS_m+k5wIyrSNKU?yJphLIceFTy|hJ202 zOZxF0#E7OLjj^~Cz7az^8gSpqxzvsw-~EGH&RhOy-MdWOy*R_TTYJAx#P0iZ{;QN9 zUv@WF45VTui{o0DqEz%fwqi@(uv_q_ z;*hKdMUK5BbO|+fST93jjOf)a$IH#B1-Bh$p*;nK9kjphvEj?cyJ`6;+Q*PAgVY$D z`P1~{`nSL{^h5q^B%jb2ZV?G)@KfZtb?#J(s@A=>Raj9uE#cmnUK)BA#r{McUHGTXTm)$~%-NL-4 zv*ku%n!^ch;rAp7To)}@cZ#CgtXFkWo{u+%D&yQ_BNTxIz)Ewo5{Wuq>5(I#=s-QM z8WmmPG*8of-Gi>>%TqU&D56rz?mK^@i=d7Pem?)q+fT_rIUrxjT5&sv4(nY^Zynj? zxz_5luW?NeGC+Q1MwkWeGr^#t}*ZF;C2yM=!O$UsKP! zl&oR$K&qQ#=DuU&!L#JpFt&9nI_HGz&X`>OTow*SE$`f$`PtS{6gdVTt>)eP2fcLs z?Cdw6L-IFayriUQznGt&HZ95A>%vb-js^I`O#Pd*nSr{hLv-V7Oo1??e)^0_d+)kB z;A5JyThqCRiv~<}`U?kEjC!!C9c0LQ-O506%MR@)-~(A0l46=;q{y{~G1gX4XEV&q z8HTGhMGhmciTa`PP*-2`>(R<>Hm8YsU(b_UYz*1LVCt7tnaCtc2P{>`*pw1G6DQd`Sa_*&{SGU<|Wf=!{9effg<(JROdq7+A_2@;wR&8bq%~# zUT(5wNL3jMJKp3Si@Bz;$-e7c7QngK3!vpDz=uja;$0k3@QaRzOQa229rZ=T8di+` zcgUSN=ZCT7;pzP9JHe+&tpyj{)?=`G%?)X_=UW>Rr}7J|qo8;jS@`O{q_{Re+d@gr z#mwkPHznW25S3byxcq*`O+0b@d_@jGie;X5;QZ`44x2iIZmMIm<3V3(lW$rCq4CU%SvC)STiEhe@ zW?d_>ss-(%!?zJOmT&BjrOc9777q`(5_;1OKQK__%l(ZB_~vmp!;#l(7Vg5M9-cmh z$EF&wc2qNOo6W5x3e8+X)~_GPR=&7o(q>E!C0_?LOH^we~7cW2@s=PaeNrz$?9@$xD0%TQ7UNms6lF9uUb6wCU;E zj_kkT`&3odI@UZ8N<*x2&OH6xok~w>mTs|~p2fPy3mrh~D)tzS{Ft|@KYd9pb%k=~ zw(jJYw_3f1$~iV9OR8fXs0f&`<0i|IE%>asb@G1-7Z|ndr>bIl%1xV4S?3k$gpDcZ zY#sYHaa>`?b~f);_n>^wjaluCtKlJ$iEt(CeQH@I{fKVIV^Sje*k|F;7X`-vui8u@E(CV}B&Roa z%t|Z*c+NI;+hmQVdmrH~O(%B4@=!VHHsK0qn;5a1qvoj)CZf_xQv0GAr`jJ+dofc? zdq;~gZ>IF@bFr7}TPzW%0i-OgQCVtXNPOw85w@B^mAT&qYYdf2Q(aACnN93Xx&e^{ zE}Mc3Z&HtvoR+#?{x7^@5g+!&I{pp-LIaF5FGZD-3#> z)p|UNx}yN2v_3a;p=;^#RPZlZ2fO#T7(RY{^sPzn@Tp_t&YZD|`MgU*85Nzy)olCbC{}OZ!QM zKK!z|2mcn~qTiu$m}+%?xD!c1_H>jZ&i?ga#+RfXX6!{FVTN-?AGWOTGtN#>&vdP= zXD?}2Y$;4jL>-(IB8z)ZvZDovO2suFlxA2yha~pq!D@CCEZ>69ipUW(?AM1b#MV~( z-af5TX(_S8MKZ1{0#lhUr|%8(PP%d~)^LoTGaRS#UY^vcHe{$_yv1khvd3MXI8@|< zv)uk&gsIS~ihqdhvr&E+*}CtV`jYL)VFQLYd=DwZ>m06qiWwi?7+cyXNzRB+c_a?C z5ak);Vx%;sY=HA`o#2u{*0%}^*1^g1G&Ce}Y+}rN+4TDS#l(;2>djg5H;zY8t0=9U zb#~gxXzq4382Gi;VdO{DPdVG+lB-K!r}vu+AjB$M_s%NiXSBfdqnnjqu#ZYd!^@rQ zZ*vRDa^mF-_^;76`pD%gN0jT`r;)AizDmfZv%0b-lQvryo5eHG?YcH zMMJ8rWfUdsY_An^qFia^#*kGF5AOv<09V_$bC$Xfo?<#29m8`{ggOpCaFTka0}_Vy z)$QY5OMXri`H53I^8#mV>f7%G;N^O;5N6Sr}pjhm)Uv zx@Mi7tMxREZ9@D5@8l^Lms&&N8SfVgx|4!tC0~}~l{nMC{G`5KNgjtlE*%B`1I5*Y=HPUH!V6oh4k;i1KHT%h*z0*%yuR>-#>)hHOC{nS9ouN z#Cley8i3~NRCLy)JFp9dQU3JGno*NC*;mBH`67w=Lt@;s-{O(r)NaCM}1D>Q9!7#ZDAYHm^5~j-ej3JZ{)E}asJU_wiQnO= zsqUxz3eHlzbVK>r*f5r~4(G=D==jc}?&C^;letLyon>}}A#N8|&V4d_x;lH3tVpz{ z?5DYv?0B0^X;O)LGloiD+4QLuR`v0lVqZR4=TO&aDzbvwulqSb!9UFy^oebbZ0A9x z#k4d*18O)I1ooR;U#E`}w5J3~F%wrVSI$j$J58`P)b=nNMC2vvgyrX882$MIr%5wO zmwG=e6wj|_Ib2^ivcW25h+JbxU2xIp#oih+Z)K zFCy1U**0SI3uU-bU@5ky?UX3PO@(7TC1C(N+7~sL&HJI_czpgshpC16Lk&{?6N}%< z6pPzeGaaH2H5xPY%L%-z!scm|nJa$|&S;DL*l6PWm`hDqUB4ebj{YSom}m$ZZoJ{y*k56+}?F|D*rIDJsTdulGn zL^kZNeEUW3wc^`sA(<)w7*tv%Kn$h~y-Y=TXleY;013*yKD4m2f0ny{im*Q^{ZosV zTIFW%1odQFUEkFD`1Wz3NlaVr_OY;`5TDgM(=4j#1(fD0F7+p`W4%w%S&`2bJ;??W zU2tgas+7jcS6pVB^p9nUOnZM9-INLxQANd0hfo?sNDju(e^9py`wOtmBApW3W0@#` z$K+$gAEPpKeItQi(^awT>|X5BRx*jIu6n&jnXqfR7VALl;_8psMTrDLf-^eXi_lUT z2LvIrE6V=>|8{&)UZK7jMZ}|!rfy@VW__;5C#Y$=6R!`A^A`B07MDEd>czj{#4dcZ zmGY2M-&JsLXB0qgXBwK{ApaJDvbKHB4#X)${kD{uIm*MKZW!~2;-vgEi`&x)#qEnx z>oJFV`)1{6xZJPmPHL1Xl(+F0urQteaN+Bd{NXHC{B&S994!k~be>9qg)U{7gMS;;1oW&K0 z1EWELTPVD19fihaSvcblsDj?&kf+Ys}u$ z@Av{Uol_c$RTo$67&dY*|9&RpNil1@w{CPW%-y`--D87W4- z_UkHR!@T!5^Ezch^9&Wnoa73$$2&aVK*!hF2}*^ofjb@k%+ngT8*iLE=h}JZ-DKl& zq%<$Uw&d@cAejFdJKS6>#TQQvt5;mXWVG3%J z`DGkFc!HDUz$Kmgo956oFY{9aq^+a$O{0;P44LKi4&zw6H`=m$X~RQ86Z2NjT^Hxc zt;#Yhl%pFGNGF{+)$?`yZQ~?QG&_V9;^FV?mr;re0L~;L8(uv%FA<~O)W9#^T*ickWT{)I^v1YJlF+b%~r2DN_UT!d6fho4LKj< zbUMao%}T#na^u?ys- z$ruDUk*(U{l}k7*W7v&gAfT}gwQW)F;#lC<-XhL-VZ@>Gsb(oEJ6k0ZQ2i>E$?Xq1 z77-i6)|b9_B;qm~2iN!JMK0!E0IYUedSdRLGR&v*haC+1G~~}cc?OzTC;{Gs*5+Oi zTv^nfcut73bc(B?Z7trZUaqd~{R^nh+@(wcl*U(3t-G{PnU=N@^;uBS3C_^3w=47bLX=i@c_hJwv6r^BJ&ntf7Xp=XZ z=Hj~JLve9yqMjvCRiEL_L{xoLpL)(MtH4}+EWP6rhq}apYfo*;Ca~Mt*}~ty@8zWo zk8Sc*(rZMQxC`taF9TKTV@TaOLES?repY|*UAmsmZjiP7I;#f|2yWgB9f}KjobE(E za<@{Tj!B-f81FbRmbuUyoiEfL8SpyrWt>U_??mt~-)=|!`|V48TpWCHg8_J&ChJ-i z<<55ilH%O)t$|I|Fs#hfA9nRe1w4?G*@s%>Bv-(57bPnz`dk*~S7tCN>QgD!D!JLM z#@xHQJrVY6zhFSya}G%1=KH2#Jq_xE)eUJTzWk6WQ^P`kNG1KeO?0EFRJNdqr(aa@ zm(?g?7fWRup{5fN)GPIiXUtA*#(8HraH*rj_!-=T*vCW@bPPn;J`HVC@@MBhepD^+ zo&nbmwt1Ne8X8$_8NTGy$6e#ovaU_Vx-Pf^2HH_f)Uz|pqfh=NoZ=P4q!&vypRaHl zg>%N~DQZW6{dPX@n=&0YJFRb(bZmK1y4BGCZ02su;#sUOu=da;|LR}U-ambs|5k8V zHNSlMZFS-hW^UFnZ_<-lQdewt^quZNkB|S3jno)Tx$=g5L8EEbgfR5OP%iWc17f+$ z+grTmL6B?Ol%XY{Y1g4PU?g4>W-rs@8$%oi&VumW#6h^&9P|Vu3Z@!Sic1a?TR&Sdpvq9aQ_MU}u;XI;*)n}$$}F!cA+7-|AuUAcWeK>N0Ir;%lYcp1X-!R%0)L2*Uq65Xbzgn#4&2@N0F~U$Xr%t zRByM+D}K2H%sf*g?IhCPMhp>V-p4)NBjoGM{Vy~3`gLh3K@0Q~Q&PpN>0}8`UVqBu z5mV@ELvtn>iuo+HUPD%Adth+s<@Z>>SHk1Kk z;WE1FC-y%TO{7ofXT9e5KBV zy$|neq}3J05~uMNqii~ zOSR{c`$L+-FwpzU^s!$MexmZd%`8*DB+-8+=C+bbLMHQu{X*3Z`ckbDb`Rb2ux@+s zxsZoXr55>%PZ5Iue&duM))#-&JR>L1Y3pH~Fy^AYR2|229_%f}`&8_w)%CPXTwG^^ zpc|mjucIOlAeWYKj9eWD(Ry`!S)Y2bRuRBK?{b=oS9RVh0@OXRkhWktX-4||Y5&mK z9>18_ru;;`uSjPKp*iNIE=j!`^{+vYeVZLVG^QwJnl+gDB{igh_u?QO&9a`MTO2ui zMHS=SjqyPf=k>3pjTf`zchsnon%m0TN!Him%cOmtTM3$*(M)!ak+N>uml&IkzYvpa z2J7P+zLgD^aytN8BY5{t63TcyHRwBsY9)llR_v&!{M*t;A{Om#lAdR}z}3hzRy5Qz z&BdPHo5kajy<VI0iXkjNeH8c~|JvVMyn~?ZODy&bb^xDqbpRuU>%%6@?i2C5XzWHq*WGoqdPm1-i zFMq)%@nY%($HFe4EGZ880AH>$w4Q^MUma7-Ce?uyv{U+v1yie?wmN>L$0x%5$+cLs zLY0aVM}-)nE7@7!%3oTWitFSCuUWkQ*<-d)a8cki%a7ATq~uX|dMqm_a<*ogiEIw9 zJkj5_KFWwpK!NZH>M0g#!*gzN>+eU;hWhx;Jv!lM+2cM{`JCChH!qA~)kyL*&VBgo zfIA%lBO}wIeXImxY9*64tMb0wZ`J>%Hz_RmWfFH0@sfXowu;t6KZ*WurY-@_l)xpR zkIni|+;*j5?maUd;t|WzezDmJ`MFq7mVLgjpP*wxWEYz6Zg%`ylf3zF8RsBK66r zdMUF^rm)xlm|RO>DM(1|{(#xstOs~p#8VBX%qV(D|iloK|Kc3v? zs_1rSjWQ`r+;yrgdS=anM=n;zloPTDcKnmB7(|IATMOWZ6{bmVt1YeZ5*9m)VZCb@ z6=HyYw;D>zd~J924owdI^=EKNg-?SFR&UWO}^Ewrr6L-^a9illQxcY4Ft-7j@Y*CJMIMugcQ&d5RVDUQ6QA2 zCzVKDH_IBYO32Q%8aL$hpJ)z=v4XT9g4p}h%iS;y&=zq^G5ba2H!yaI6mbPJsYuYZ=t#QTT>SD*Zr?600&IWlJ%r^i*ou*{d^{3Q0k? zZJQ?Im2uVtaP48@PHm3UGW&wM+MmjKrZ)Lb5o|*T{Zj*YpnpR;NUpa~#wr<7qBOaC zA5onrCOXX`HjpE|vTuKhP2PH%@FUA>ERQu?G~@4b{WJel#|%tpjPRA@(d}EZw{C47VFJE`)lsgD>3Ft~`|=3= z>X&Si#sdBkg;|xR8xYWoYWWmqUizWs*w+>sw*9+)LKZBPN30!jh{)RDIQmk>&{)U! z3GUPIBqZ394OVKtkbU6yIi-GyS}x>1=QA6y<-t4BHpM#nl?}$6&?~a^11qi zgx*=mr8Bo1cw^LglaJ;!VY`pa@p)hg&vPmw3_<)XV9zIv9Cop17AW0&*RO4CUX*R< z5FoZQwc36N6woV_;r5ih)#O~vpNgMuEUi6WKusn8^}ahn{3;^qdDkNrLM{lLZVFg2 zP#`xw{Ro8ZmnY6hKgTd>St1}Om)$vy&>BDu-DXLn&AgG!S;`_}KN z+KW9`qG8cEl*Z!K5Oh)x8}Q51+l{E?6BDDp_-&(TDWOy2IoJR#)6HwB2k!fVMI?Hf zYMr-wlW+3GO#Y{ZZv%?mBP1O~v|Yyq97t%~TPxCZxoq~MQ4e~ZY`9EWbRJ5$5OFwS zYzhq}u-jy9I{@+aU90q3oclA z)2*~xb18hpSoSmaeEQW{)-S2kUg;E6n5tthL~b^_i5T8*HlMWU*|77Qn0oybjUXTz zAM#a`_o`HqS)14`?rrFV_;qV^&CW#M8I#X$BuNz{l(`9PGc}pb-6ncvCtOmIX8td( zts>FOd>MuxVXnLdvagfJrbIFvZl;g2-cgY8(2Mgkk~iWAsFO;?7WDGdG)0Q>u=DF@ zaypgW^M)}3b-w4#8Rikycg)vo->hHTzx1uFV;vGDh}?ahtW8&aAaZ>S3V*)azCpMG zmVFu#UIKt4L`kHyJ$$k$Ezy8)VQCPiDMEK%y}DQEdpU^Bt(Ucrqcg#OCaUe*Tq6(gEmkI3l zUoG;8stfsgMresBsB4n%+D*9FIqhRZ%8!>geQx=r7F9?vnPpEkz+=u>xZY0*3W>}F zqcl^QKSA;4M=jk*r|+Bh?Jpa740B&iOLy2oqfJW5hWjC-`dnez5T|Q#skWXW0x&$G zHek8hYK^#7_G%DbI!2t^e#pF44!E5HFi1i^Jm>M4$u){Qw~jfQ-_uws^GDtr^(3Zr zdWco-hZX+-MutTlKkfM;{VfZtFfWx;xz5<#;{X1*{E`76+pmjGdK_?91*2>V_ajBC zO1N2sW*-QUH~JgBC@%D(*3Q$azt96sIACdtPt2!AAGC>NZE78VX6g`bUA&!ypf5yK zQNAw;4n#U48PQ)8b-WHLj@5S7Py4I(LV>$LGITfY?CFSp<`ay=Ovc24;_Qb|1lt1b zoyk7U1woY{60K?Z{=@$CpXf4Q_~4^x);-1&z!wz5Wa-W{oKW0xJN+z>y^AK)^GUWx z!pzwwt35IMQmyjRjq`0oGL(RtwB|emTe^s2ua{-QP>rO~q=jm~QIo02DFS??w4pEe zqX16ef>@HW=!lFE(rp$?3DP_=I@;uYVO~JI3IuYo!b6!eM%aDwD&#prnzf z^Xgy?#!mO{ePRhGyDY+Y9bA&Cx>VCeUS2?;jdBp%2a3fgz)1md@HFRgp;@i8f(T;I zw|iA{go_frGK3HA&){~v$A9fi{21QkPfYFTd{l3k?6wgT zBNNPJm|&>3e!hQ{Piot6a+_{k@BXPMU_gZ2+}ZN*JRkBAGc6$m#2(qF>Dei1B>~=~ z_|C^yH?<-6oLAn3O#YSS2@axd#I^f}o|6m2?x_K<64W9Dx)ghOk|+>JU0hd!Y+7CQ zT-8N^P}G-5)GhOQ*>ug2_R`Rs$Ty8|{rlFV4^5hXP+9-F{GjV$$@t}=GcM+zKy|nn zhxdZE?!j*XX%092%X(sUs<1D7#9^32QT^a+W(L;V_f^G4uJSQ1eORtVy~7Zt5NPHD zPFg}2$kdpxjK#FlEEJgDx@Q;~oyfb}Wy~r`gb@-whKK<+{OPTKn#X^44Vv3jvcmlJ z$@M?)Ayy%lGDH4h22sDg3#!eEuR8#=m~6dT^Af}92E>P>elK1q0PzOu)5OOV>On_h zjw;)5oPu(~8oO;)=DHC&3HbuOr=KF<{Opl)m2^pj7kLyB^5($|($vsaL*$1u0Cci& zP6{@tLg=oSZSH2Hn(bJw3YPYkgBgdIyWzp+fTKY}m5(;NEG_yQUf2%hCX+M}3>Se5 z1th+VqHZ3Av5x&*R#vP70Jo1@E-`Q~6)=a!>CHt=yr;l#u2|2~x%YBc#EPIuvY3x@ zy9+GCK=wjLCyirnR+mLbS)QedwF5X?CO4sisZ8hx@8koDOt!I=dl9{R|BWW;%m&|~NfE8JS>?*h zM?Ox+w>UCy-WF!5yU??PUDsr3ycob%KUPb8IZg`ZCMUHk1l|Chp_AieUu#={RENnb zLfPb4sELrJJVauU!&I+%}b$eY= z(_vAzR>d+b_(_pen6gkKW&5$ILqbMJpLV}zrA;qN8~P%AqG~!fV0)QkM+6GQKE*xY z|MuXK!s9)9n<7Jm9uE{uy|!-POPt6>X-Si!^)U(yvo4tI09azd+MIghjoSWV;HofL zr>y5VTo<>w7Lj4qI~ZCa3suf-L-90lu)V?pg3DLwz6izEti1Tm1&9N6SL_$1>X*dW zryJjUf-Hw%xCZJ8Jc4K@NViLNIlg2t8ms>G$&qdkRVk%_=4e2(}*< zV;&EPm`7xkfN7M+g2UTReJ7<{yS(f{TQ4PTx0_zK1mX=iIH~N6Wx6Uhh%!;pUEQ?s zkk~_jIsCqZ1<6$iDOvaTGkW4G^5;AOU`r~UX`TTcHzxfKCKATEG&*g>9GbA+k_ED+CmK(>_wY>ThgcEt z?}S^~dr%J+n(Kf}Eg0*D?RH@mK!aXBbWG*4BHQ`?Qvvnyct$GpqmGPr>TZ7fYRW1B zT==x10iif%-yv1z(odK}F`L3MIppp6Fo~g+{yFVc-lJdF*Cd2t-YBerE{kWV?SP#h zD%|wQhfmWTpgl8p9iCBZ|L*dl;@{lk&2dyp#6uuBQ@rVZOBj0Sst)BYSeR)XWl^wo zDsD6_xZy1Gwe#~(8hL&XvIwvqZsFthga(mg3#<{jpV@e14ul*Egs8*&X&I z0y;C2T`Rz~^zIB1iX5daa(!5pdeCPdf{#5R+hwY+J%@DcDO~s@tJ_A2|5A!jNl_D6d9Jk#ps;pZ^icl)|&*0}Y6Y(9x?lj%sv0~V-0qF?2sJfjGj z#-8Se!X(gt0-8M+RQ7m2nS7 zUsNN0g{b!5NUU|Pllg4OdSmtH`+YzIPJ$VkFdBhm2d7^bL>T%XUhbEKUe8Isz$Oi+ zR^d)PFE2x8^99k34CPT-ZtZPacQ?=={O`jbc2#+Y6^ykX}K0wyN!eMw(^t{kJ0@HQFn#{Pn$JN zZ9qpmF54^Ed{gTw)Mo0d-A@9LCtyWzk?MPDR`g)6;X1milx&CUGpacIZwzS`s?#iJ zD@dDrG@54KaBk$0v5Kn%T7s%Nhih?8)8{ue3}!}kre!Kc>XIf_v&r=bja(HPy(Y_v&~|nsegRrS$mDM~BP!0w+(dpVr@)YnFmu#DjTv ziQw4&;}A%i_IT5wcui&>fLekF;Htlq>h>z)eU0_loJGMcCxFEpxpdXxM=@Yv7*dbW+-3Dt0cbvD z;b|5bbr=d{mTTyMu5mm@k~xTsmUp_PZ~pOcAh{{c&(7=$k+j*qv?Z9?$P>0mRTzHt z)7a$`CRAGlMowDZTTO+p_apyGk+*cWAnw=iwyDoIB*Skgxhl`s)ko^?h;Um)W`Cbf zPs}J!dxhrui|!FtBGu1^T1!dWJSZ+fZkVh5AUJVkB7aRCah3sR7dj(YW)d0|Cv?_% zeeoNg^ZZ=A%vVF@0$477SgxL6A3T&(e7gvj$_m!iK$nUjSk;(-^q;lf3(%HVrl zZNIs(U6h8Vu0zSgWCUxP0*HA-Lg_>x+p^!{l>LB>nSr*f-7uX*jl8eB3)x#GC|8wl zoj|_%3}S!2N^kjs@{AIY=FeAeqErc26P(mSmEwVh)A8D41cqU9xXq#X&Lgp%(jOo} zyo};ON?$pjo$4D~w_Sph#wIiCY5QJPX!Jfe!TRY@UKU$>rYdEuoD=1`m@i!JdW&1g z_e4x6p|tkp7oxRr8S!hf*O63vARLrx>5e`HBli@CdpTCWIFFBKH8th|#U+#lQ@<#g z&kD;L2CK&U6LmID=A#MM_~r0PNA=6gJ};+DL^#TggAIP5N*ZPxY(0)YWoy;-Y#Q^u z-k=i#?90TnP(*ZeEQttxls}6@ogkG?E z^thjnoV^4mIn3*`7l~4Bo6o1N^2NjT-rkl!5Thk|EBDa@ofsP{G zv5=RoAB8Gm+j~zMDOC!DKP6z3Rj&j60p?E^3o9gG2M7AE$3dxEf?hpGR(cEUl}{6I z9Tg{~fD4U!U34%!Jm2;XngH$4AIs$GZ~q=>WUU-d)CnDc#p(~lC^}6`40Nc~Eh~!V zR^5lGj^&Wd9&A-`y;P%R;=H0ijCW^PO@i6({5(Uba_fcI**QhH<{;633dG-d*3L@; zG(4J-_jn{CKfyQ{CNPq@8=u!n0a0(FKcp0tHjy*E`#9dv7V22av@Eld#n)bG(a zy<|7l+gO;fhYYoS)Wbmfg_OPS0`zfvk8;oQN@!+6h|$!z_YBKVE3RpxaurCbwUt5J1cqmmazhm?fEtBB?3eF_H21A|9tvg5$!xVa3Jc;^?;3A1N`RVI93Q<2nj>j zGT;tE2x)cmd^;m=_Xr5aCUC1Py^qoZjQrIu?DhW!$+sc*s8!0(PqtLZhHgPC_7?`_g)3A5RXYl}BXW?rj z=1o7b%J>*W7%AH@z4GC}K)`L=XJ@0j(Y6es3g8h128qdx5mNk)e_DU|48`h)(3nS*r^Kr1(cbmnj1bjM|ZT zv4fI(#7Re><2OWCf|aj^b1f|SRDSs=Go|nZQNdt(b1hzchh=E9&-Re5x={`y#D^c~ zQ>_~f$!h`G789G$sl36|l3lf<8cz(BqhJe7?b@t-9BhOwb+#|Pvzzs#T z5)kiRJUpi#ac3v+H0%KoPdan52X-ogQNx%5&wwic0*rd{JEJ@y8k%qm`l?}wcSQzO z0ha7>M-vLni(64hhwR-I)Ss6c7yHZ5Y_rij6z^H zNjkuq6EGZq2evqwe?D*0>_I0{`2p1E6f3JD3ccbekx{d7K*y!XNi-F6GOH8BJG+c9 z7@6s9-$Wd(1+Iez+v+JXz|P`cu^a!MAToZViK5Gz*VN}FOQ%6>g(Vcu#69)wtVlC$ z;PhF{$M+&HP$ds{f5^M)WtA9xHx)+H_HBuNCTxD8BnG@%<(x3l%(wzcCev&P=r%AN zZ4x;h|84FC`xCTr1#yTp`(bp#C3HeI*eC;?@HZ2nl}f$JI{dQ2x_PbT%kvP(WSh~YVA26_nR@JBt_H!o!nquCPn_Gr58!cQuKm&@Hr zV7Ae~V`@>S)+AN`Qsm-dzhn&)<6=s7SKmbkXz_y5@CCALYEfM~1}|~Ne3Rez36_}9 z9x{gCJ0Z9s*&e2HoB1GBsp0f8A~F*KOD0RgsOtu8p=PIslTNe#29&9^*(FJk$!6#i zCsTR7^9%teYTxy^4VeflD4o@Vd1`*7GCXiPUB!d@zh{UB#Rma}0Xm{f%~etLayeb|B2!o77T{7J!q-P)JzUz24z&>Z{YWN!&L zzbocfm_OEH8Onf(yX!Em?gyPmv<-qBU9=)bE)X_ZI0c1?I}|3_yM@WWfiqng*}^d4 zQXJ0_%jwRG}-y}1YUVfNz$D|oi2E}T$hs2Ufg5$!EUr92o^g;!jWOX=crA*c=8k zz&hD^Fb7zR2y9!KJ*lGT8UfHQJZEUqo(k3u&+j!zO9+ynx{Z*2=894jvQV%>jOkgI zDl7caSC4^iw)HgF!mPSf8i-hT)o(~_g$noYFJ6KcBfo~T6zzwytLAa6_*+GP5LZM) z5o#!Pni@56znZ$Y8WCrW-kTdFLt(;j@XXe%`u1(uyzLhsnT4#(EtoElV4BRDTCrD%fqm!(n;=@`?lAkj!H z@t2pB8q7MZw6#F2ZK0a&ivFJ8&C{*}kkphT=Nq(d8`SAr_9f>lJl|hVoRF*n(uc>1Mw=l;lcA};WX8GlBRq8+}lT6vM=`qN1w+bFcjb*;{om ziu6l6o8^B0HML~4QznO zvs^G?*=2yREWozIc0NIyQVbTB82_Ry3XTCNkcZhAb;GHDk9db05y*U24&s+XjsAgZ zv!GKkmrN!t7GYmP7(s$WH4?grt*~K>udIyyC$H!9WVZNpXv0RjMl50@lqP7eSw+B&%WTY5nm;>3| z;mHP?c?M?kl92yjmO+U2CV1&?f@VXWA*xkvDmT||i-t+`Fqxpb+Om)6ojXC4`o|`W zylsJ8c95aw+-CKcCopmbIO~?{kdx^Et90#X*e|XCOJq$e2RVe1HE@GvWL==xyUVl& zdJ&6{_lMRhsY<7i7P+tlZPvkL1biHcG0jA`27MFjyvY|XcC(%U8fWgV$7zJ&9l1P! z7IzR%z2M>-b{a%S=7jgl?JG^kVuoHz4PlHLIREFsz9wV_NVXd6o^}a; zo(?PGJVKxWERoT01rB*+uwTIVtIEWENa2Ak5rKmy?IZPv8))wv(Ki4y+)8~ z07r~R9Lt_|RO0!05X`fSyn(xdL7E|>*@tZPj3hi4+N%I_Y)(=#^&E>F-}8y}@=WQ+ zdS@f+3=`O7PqUwe-yVN3{}=Sx0*^5~4eAb#@vn}p+Or#YR$?Atqh-|1A1yfMv&(_ z4^CRN%tt_tuYaCEqamV|jPN0X-ULzDAQ$qrL(ln}aBhOP`xQR;%Gl2dG*&Vf3gWLh zSZ|H)^g2AiN!?^c_yLRq!H2&a4twDHgXovP_oaKYZ}%&IZeF1Ws&x8c(-&VfUi)7(#7m15QL<7RoJtA0bzet{Gmg;TiogJ;NMm_wnNuz{$us8J-`0oJ`k{0t^`(+{KIIKbNP(q zTF{->ddY#96P6Ms(@@_YG4vHXOyT4q=DZDBk$CDGACm|W(K2I!J$1&JXnvf84-wpPXCOCl?m-!%19377xB*ct4I6_DxlwqaMlihZ6 z7KGzSM*6&{Yt!hhl>mT{^@+BKqGKN_vffWLj_4)om*7V% z%azU=aD0e@tnbOM6HKCRd))7e8heX1!EWMiZmpyH(J5oe$@=(j-bANlR~FT$nKFxl zd+~;Q@fNnHi-2PZ0>4)5PP60#n(t;o=$?gkW1h#p5xpr@yzy&>yJNg$to^xhy z-c|HCdiyS8-<5a67Wi*d+*+~Yk5|weFWJSv4wvBdPc12bxwhH|FF=KN;(Z;a!8E<5 zKu<$Imku{}YWKz{T0g7FnV~%;W8up!W6yW z9Byl6+jmMR2UD|>y|w$oJA#LJaV$*S@M={&{Og7bO@IH=j$FQHX8CF<9h^{x2_(I8 z!KX2hlr`4PluKozjHK;rRa9uX6NdO$l??;6dINSI*b?tn-Sd$GEq^KKAZy z_~QM>x*KrXyPB1=Cdw6iVq)NCdx%#V`9gOhNuV$?^DG(O2N}zx&(T&Ip=H*#~Nqp^E8KNl+X$$!3vIAt)#-S zWw2YTZE$H1ytJq?2QHN3KX?FL)C=FE-)mJX98O3~NN7$hs85Gp6|e%bm|4>(Wrj1# zFu&c2Bix|#n>*T{sdZ~JQ9&Qo;a<|AbN%@3B*X8ECFqWTfvF03Cy z$G1d{BW42DMbWKcE9c4k2?~rvuFj&Hk=Tdr!Ip`*6erUy@ZIU#eW~5^qUHh;y=GvRUvJ}Yu#rSqT!^SC0%vB#YW z%w5i2dhjfWfpGJfz3V7;%j|yn$S5b0USg#qc~6qlTVdqqD9OnBDD7*7&%iOfs<1!F zrBwJNC|8=B9rJzKmE!|A;va!l={Ft5R6Z4vcBK?>qnmN$7!mvtH9G-P$N3H@T% zUHtPv7+grmfB75w7Cqc6{#EjSe(@ha_2l8jeIF+uoId zPYK}k;ZJGc`~yxOaQg741aSKBr!;W>0jCc*efU!XIDPn28aV%e(+8YB{3!vPKKv;S zoPWUS15O|QlmJd2{*(sJKj8EMrw@Nh;QvY=WPmB2I>$qOwKP7i`+nOyObx2NLzP|A19sG7xkKI~%=)?c( z&PecI`n)y7TK)aKzYpBSM2%_4WPjH^fBcuM&*>k9z&{Tv;XEYI82|X*?@JM4g#XP} zN;a|yH7lP@d(mCzW4i5)C8Vbyf%XW{$Q~C)q#I= zmxo~YC^ut||1JsGoNn)b6%L$rKVBS0^s?AL1@QZqqQ*G!!zN@n@&Bb7IPFJrz&W44 zT@KFqfUm~+{=b6-F7%@Kj0?U00GDx@&mLUj`FD&gY*-2l*f_3&LeVzdJtkqPQ&Re>V%lIUk(!`5T=28^FeuVE@nvob&nr)cJ_I YIOLHqhS%8vwPBBxt<8 literal 0 HcmV?d00001 diff --git a/public/splash_screens/iPhone_11__iPhone_XR_landscape.png b/public/splash_screens/iPhone_11__iPhone_XR_landscape.png new file mode 100644 index 0000000000000000000000000000000000000000..386e0920f59319147287c7f66f5465a520ee24e7 GIT binary patch literal 45243 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 literal 0 HcmV?d00001 diff --git a/public/splash_screens/iPhone_11__iPhone_XR_portrait.png b/public/splash_screens/iPhone_11__iPhone_XR_portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..590a317ecf2b9c41aede5e2abf8f7b6d544fa333 GIT binary patch literal 47519 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 literal 0 HcmV?d00001 diff --git a/public/splash_screens/iPhone_14_Plus__iPhone_13_Pro_Max__iPhone_12_Pro_Max_landscape.png b/public/splash_screens/iPhone_14_Plus__iPhone_13_Pro_Max__iPhone_12_Pro_Max_landscape.png new file mode 100644 index 0000000000000000000000000000000000000000..1b06793b64aec54ac4bf948481b3cc9e156ca4f6 GIT binary patch literal 98114 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

indJUfIG6cq~Q~6cmZ5a;qOdiW_1YuHNa6 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

  • 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 literal 0 HcmV?d00001 diff --git a/public/splash_screens/iPhone_14_Plus__iPhone_13_Pro_Max__iPhone_12_Pro_Max_portrait.png b/public/splash_screens/iPhone_14_Plus__iPhone_13_Pro_Max__iPhone_12_Pro_Max_portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..88a9afdd2560c57fbf081bc97c3c968106f614b6 GIT binary patch literal 100693 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 literal 0 HcmV?d00001 diff --git a/public/splash_screens/iPhone_14__iPhone_13_Pro__iPhone_13__iPhone_12_Pro__iPhone_12_landscape.png b/public/splash_screens/iPhone_14__iPhone_13_Pro__iPhone_13__iPhone_12_Pro__iPhone_12_landscape.png new file mode 100644 index 0000000000000000000000000000000000000000..d40426ebd1bc68414ce22b99bf0f5606d294a1a6 GIT binary patch literal 83344 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 C3JGBV literal 0 HcmV?d00001 diff --git a/public/splash_screens/iPhone_14__iPhone_13_Pro__iPhone_13__iPhone_12_Pro__iPhone_12_portrait.png b/public/splash_screens/iPhone_14__iPhone_13_Pro__iPhone_13__iPhone_12_Pro__iPhone_12_portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..0496f4c70e56fd20c6daaa8aef71f5ffd28a27ef GIT binary patch literal 86717 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%0D{=7&4$?zI$zr~Kn8Cc`P%N51E;t4q77o{ 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 literal 0 HcmV?d00001 diff --git a/public/splash_screens/iPhone_15_Pro_Max__iPhone_15_Plus__iPhone_14_Pro_Max_landscape.png b/public/splash_screens/iPhone_15_Pro_Max__iPhone_15_Plus__iPhone_14_Pro_Max_landscape.png new file mode 100644 index 0000000000000000000000000000000000000000..582988cb93e1673b5353097a26219040138e3b74 GIT binary patch literal 98019 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 5{7-)=`nhysy`oc+VV^-a=Vg$iu~3hoE@N{9&_ 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 UzyJCfzIhjfg+_*y1jnWR3k(^$z5oCK literal 0 HcmV?d00001 diff --git a/public/splash_screens/iPhone_15_Pro_Max__iPhone_15_Plus__iPhone_14_Pro_Max_portrait.png b/public/splash_screens/iPhone_15_Pro_Max__iPhone_15_Plus__iPhone_14_Pro_Max_portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..4101bc0e823fe84e609fe556c37b3a4d9929d139 GIT binary patch literal 100734 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 Y*s?fxZ2Hj(?tn!4g2H*sIlcS;3kTE_$p8QV literal 0 HcmV?d00001 diff --git a/public/splash_screens/iPhone_15_Pro__iPhone_15__iPhone_14_Pro_portrait.png b/public/splash_screens/iPhone_15_Pro__iPhone_15__iPhone_14_Pro_portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..2c56a023397e6360745747dd70febda30569e9e6 GIT binary patch literal 87628 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 ayDHoX`(xXavX4yg-&rNKQz<8|{PbUpQeAZb literal 0 HcmV?d00001 diff --git a/public/splash_screens/iPhone_8_Plus__iPhone_7_Plus__iPhone_6s_Plus__iPhone_6_Plus_portrait.png b/public/splash_screens/iPhone_8_Plus__iPhone_7_Plus__iPhone_6s_Plus__iPhone_6_Plus_portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..2e1f04b50b786e74773dc7f14917b82faa095a0e GIT binary patch literal 75874 zcmeFZXIxZU_ALqsA|NOxl&q+T2q;l9h>|msv*aw2B!gMWN=A}Ii2?;k#sEl?3{pfz zkeqXTb8q_ezfX7HcR#*&f0zDn+A6B{UTf_c#vF6ZdZ{QcK}t+XjDv$iDkXVa83zX+ zi-U6{;mBclXX3R&6#O5qgR;aeoSg5}6F4~ZI8wJo?>^L<{*gyoO@AC;)SQ6#!QM{q z36||=V&4gq{G8+e?1W4B;NarnA307h@<0EmmNX!-VGxcd`rEtc=X7urn~(qf)9Cy7 zc(=5D#_|8-QaJGW!v~)~a&SI>+1PWiJaB*q4)DMM9yq`Q2YBEB4;Xt!ImwNjFi#YFwG$s<}kPAe1#5fhtB|f?P;2fb84gI0K zwmcCPOOeNBu-7}#tK=ecO6oZN5rv0#Qqq=E7kw9TqzbRRzCYR#+9=3l9(_2yq3P8( z|8MKHybkg~p{~t;TuySVELYf*i{RkmTOX%4FTf4Cd>nc4@Bg7UHzK9?!NEK7@BcA) zj3XLD`hwHSyN0iFyzg!G%K!twVax1;~-N_-Lmxc=KA`uLFI;oET2x8wik0mJ9?u=;tAzJ^%=%x{k?+6 zy6v0*-{!@9bN9}FKKzeROMRN&+#xig7KPXzj0WwT%(^4FT0>oNL=3}3xJz~_d)_s> z+bW|kGj2$tXm}2Ar)!#;|0(1O)d6^yHBP#B^=nYpKEc7OC%zb}NV~V?Yh1EUy^j?S z!N>Ci_Vd1^L^bh`hwyJ->eB{k+JR@nEzTn*e3M0_bqsTTh5>o;I}qom)@GmJ)Fcm=JGl%vs{`iQ;)~!PykgE?7{q}SXA=xWCJfsS1N3N87 zUZgerFr~gI5;o?eaJ+Rlvxa3UaPe)KtGl_+9R9~Oh>v4PrN0uQOY~q7`8GDS$l;2A zd_B(Rbdf#o(W!l0?#oXE8{yvH$a`1af!8PL&1Am6R6zH=E)8H@ebh7`{mLQYdpv}X7yxVgv5 zr=G#5T9M$y=3H|mL%YY9?bC3 zzIG0K#Jv8%N`&-rWa)76sZY`yJNSn`L$B8lhcdQHdE*v(y*~UV?cT5Mz1B;~=i!ZE zGQ1}?*GSPn#lzFxz|6~1Atq3WQ`YOD>vcH@2k+bodh5pHoC9d7_E8F+gIt%vHFQhg ziI0EaosyY?7x3Vq*gJ;4Ep&?Be95paiXF^mSix7IUWcpUF_NHzd2v4%HEDL7gn#?^ zFhhB$qjdN%`s9Z(J{#IWZ<{Slu*lYI8AN{6=A(8z9|Co0(5vRV$aeHeK14P5jG8UN z#qQufD!TTogA2KsNGjZ(okiXoT|h56y?J9Gf5ioO%Kt36=)fvB(tpUFM)sHOv%!!% zR9s;83;D7$d^vwgVGjNBIq>twD?G8N-5KBU8L-wgOjAJ)iwgJiKm5r@0oLxJY@Q0w z<;c1goXP&0hEKppB2GOrL=WpG6C8aqs}1U6#`-?NEL&U#_;3>+Sf3FM`k8eR_%h)g z(^tsba|B2FJgV?B8mWI_JMBnCR1y33wFm?O;s&Fab3`^3_9wmS?6sabH_`-PC;w1XwG~Q*SMh0_- zJ1l3B+Bf){kr-7b;uRwFYjC^|s%o2#qbH9;aelpMS(X|XzyFHCE(P6&E%jNWTj(dN zh2V-?*DQ$8E85^)witOTVw*`k0&yvx_%~DHZCW!4Pc5(10OZ)gkDGZ?Oy41EJVtPn zd-BUW4io(2_X}}&V=^1R45P0040gipD5iy)()~;@C2i&}A7SyiU>RQ70!!kEBQe0i z#VB(qA-j5xIMOvf75IZX992oFz)><}JqF|O2Qi*x0{Ax$ZZUXENg=yG2`>KjRrq#K z1BV^*Z65egB@@?4Bp`TPfj|6nQKAQn`d^$Bjl5y&Us`~JQ~UqWzDlc7b(9q^GAS%n z+Iq{q?R8TJ7b`0?`i%w!NT`^9Bvf2{0VKB7=ieCrjW12?$F&ysyfa>M{PWPDI)*2% zpJL+_UN2;U##ABC{pbf_j^)rdM>N(4UqT}Hr;h9nywjIbv^d9zDjfG7tX$f}6zpQ0 zJL46Tc~~DDOmc+Z(dVXO6yc%3?4e`b*aepL?h|uf8H5^CRn6HM5$APm3~OHAGU=k=+g7N?b4;-hzQ0d`6Aafp)8h;a0|zW zkxkytWsD(`;{`b}Zaa(Qv71wLU1z40Z*3oc{b)=q3Q2ta92ID4F_wcRSuH#IqZj>% zv+-!;tK)E1b;NmX4d%L*b`F&@=8ox>tz>c^oEh3PcqRiU=DS=vDW|BH`8{xa{b6$^ z{?UQx_VOV@hSRvXp*ZK;6C6?P%b^orM1Avr1$QgNrJ1E&yL%^LnXv8-;Urck*dQ=u z)|L zar;HRb5meDuzmodG2h=8Fiw`bveVNcQ02q8>^UT%L_kchnrya4 z4$>Pgw~;x>%h`8dNs**ZAl3V!LE$rkMip%Rs^_!rhiOG!v>kD&9F{>YqroRs7Lwt+ zjE%Jk=tFo-0m~eGrLezDIJ{=7(?;d5iI+$)51UTv53*A3{+xL?LGR=wu~H^OSXefZ z#m6fiO?G}LPX<2BDuqSi^Zoa5Q5ljiDAxWbvCDo5Am3pUndQ!bjunMt!bxS)&yQI! z_N~=va_6 z`S!!JXbj+ECqXaWM-+VF1FOIV#nV?huu=|%ZlA3K$c{N!cfP!RtLFlX+svXN&Bq5y zd4nH~Jln406$3Of+Q&A(KY|SeQbbN5Fsbqk06wRU3ib^V!G#7%&TD7oYH!7SpXic#?#R(C|1JEG)wee)uz2I% zvq;J3BeDqRTd%z!g&YrVE|`;R_Pxq;cDIOFsMbPvfBJTnW;%xco-f2ttrAloY^(D8 z(1NXp<#Yph$`@CtL#_JnZYT!3q?%mjeIfGkNSf|3SC6t{eEUFRnO1NIZLY< za!;)Nz{2i0jxR2Pqv_Gh{0)WW!ux>8i{%E(y|XVUW~3O!chSxCNoOX!XxtZeYS)e3~4&9_)a3*;t!>RmvtRPc|ugK#bl`(iWeVrEB9S&X*JoR32DKYd#&Pk~Hb)~jB>6hX# z(Kmu7^=W&@*ZF(>t*SN)Gj}n1C60%@ZEbYwr)SW_#)J%~!0>bpA<-pAmiBj#n<+4v zKmBcMu{u{F5+UVtKnfCm>4Qg*%jy}VK8IKTC|z1=e>Y0s(&Dj?WBPy&+SCqXkB*yLP)os0djF2IXZJ*g$&@h77rUnUmUL{bIhL;sO z^)@wawIZ3B!@ejks$9e+Eb!a6BW0xwZkY?1qAnU0?W~SAA?8CVTK9*N8d@5AJ~30A zns~{Nr3?6zj)a!K7!QaR`~A5GKohX6Sxvt_r$*3#F`piBOLTkrjF36&`qh&`ynJqg z?HN0Ae^%7KNEO!19P4Z1|I;9I3wyIrys=I&8?yV1<;|2s>a649p-CB0=??NMqOIX7 zqsHv$vV~6>NKj>>`~|%W?B+pn5o>f5uYAe9ZCS7$oupe~WcnWWw_e6H9+zz`N}5g9 z8lfqg42^hFXx*=}xv|5nsz+Ufot+M}R2Z?a$>z^cd+yTS%Xf~lu@ZK(YE^v%4S9bf zk@BH%2v_wIcC-!j|6cLu{7y?9x0P{v!-7jbsWG;rCsUn`Cf}BJX7VNWv%ZdE^5{r> zyRgtlc>qmA798y-JBqMLZb`ErZFYLu%_;4R5tp9&GLGKp*){Mc<6HZE)ce`+Co7qe z72l|=1kBB>G;emXz2#xP0OA;^Nr^r;o5uj`>V(8N`9i`tFg$fBvgC>1A+4KZ_7yj6 zCTNCuduZp{ts;WPhr38DUpglb=<^x<=BGXVZMWrX(*2_dWgt?`42Grm{?y2Aq?VJ^ zrLXWmzv8w2Y!3gbjCA3H&$2dem6OQNJCvpKw;wv071bx9U*&OILfB1#Wr6I{iT69l zn{=KLFk|jF8NrjyZr>iA;Pu7oT1`7Cu{X!5~mkh~FtuO+L~@*JHT0KY^<|F*YC#Q@qfxPI2bqp3!v) z10FfegwYYR_gCi!M&1=?h7hgsjVR5S-%K0`NOR)A&W0(of44sJae?p+Dd8r%sc)JP z2H&!}M)`4@ci=-Fy68 z-;`0?!d|jPHZINS%^yqS4_7DNYZk{l7i!c=26=7AHH9eC0@pS?7=M%iy|zg883-5J zXD#s2qYcBWxBF#3I)5&-48OrotechlWIicLc-h#;aS`dUSQ~ySc?(B0f8gp&(LDN8^CXr$!enxR)k6En;dD{eD}PPGi> z>}_hg$9TkB$A130;fO{(V>rXtO20VJ05XVhUZw*&?2{ph(k!%FPq^jZx1}pCQXKkd zyk1Q6tc3m(^?AX?wzAiYmws?)EXFUuo-PFyqMGx(YM?Bko{a{BrI@HflD=>Ht#zylBvu}Cw@T^?AYig1*j)q!v zJ<)VCUGxYzs&=&{S&2;Wa%b5&n}R@9+gxG88B=Y(StgsfQpKO|62vM@(|T`TNTh1x zX14Ad@{k9t+8xM8OGm8eOm`-h3BeP)C*XmoS46SEF%GlAZM?hOUlgz~U1@(s#8GIn z$sRz=>s^-Kt7?lk{dX?RY!qWLGl&iQ*(BOV^X zCAS>6JfvvN|E1V1`*!@t^gRyTK8V4a1EXS-lYx9~q&B6R@Q9kb46V^e^fyri>*@P^ zEcO$ab83rtm)CFb*O?A2C3xBIT^&&6yRgBQwouPz_sf60$$M8b*XyCA_f$EnL)PL} zP>GM>&hHJ#^*IgFw|HHe@-KBK+Ca@P-#{?%%IQ9p1*KJef&O{(CF_Z^H&I7@05(|9 zyTF7(Vm1V5-|}Vz@?{la8ZH$2kZ%gWSd(M%U+_ z!Jfh`8Vf!8J2H-hj`dSDH*Fu&^{nF)$CA%I@SsR6C`?&N1_ODW`s?w(deYf_UY8xY z`IU`Dj?3S!vJh+X_~pcKs(-;74J6crv@w&;pI9OHr}KoBLPNz>jU29%W8=N=xw>uA zOPqa0w98e>DCMopzAz0)w_jwsDfC+p>|m|?SqRGQ{(z#}l!PGwEtWq5Fl`Pqsb5Wy z)lk(t(H<@3fN}mM5J0BN>sFQ?mCJk8B2a2JUHCm!o7&0{#N8PkS^ArNoU&7lEgcO+ z9IBei;Wk3rTRe59!a@D*v(GxPJsyE1C#<`iEQ|n!vmE`hkHY^}D#n8^Y+3$#L>?7u zC{ri+9x8*_kjBFo1aHh(3S{$G1x=Y|v6$eVJPME}i{wOHlz@Wo=hvZq_qQkje_#jh zi}y_hWd`&~4(R111_UM8n0tBbC*u`3w;VR|L;J~C8=#X-sm{(ld(n{a0C#EOn7ms_ zUsMC>YB% z!zA&i%{7GIcWZ|FhSF5xx0Uwh;$5bea$<_EJom$MGsG&}MCOa6+!58rI;t?}3M$!T z3tCn*=0M4xnt0<(8UEXy-d-;0{Tf?@-UhN1W@7yUVxc}$NPy9QCrf%=U(6qBTdk#HA7QAWmf~O(kD0(0DQQMHH~JE%VHsbRz+CFv|@{ ztriuU-a0hY49)2kMzQ1=UU8W(sE5x22jL(=a~7@EeNKX<%BQ=%lPlU=Cf+T(Tkum30| z4K4SR@b5o8v2OPW>@F|i8vh9Tkpp6z_xd>71Z6`FU_G8t28oa(Y;ZEVP9 zPc?Z;Q8Wc7G!xu0ID&3U9s(opdzn7;MK4kw<#?ZQWBbl_xA{lia?r7yj&w!UGvf0m z5w5Pv7@nM=a&Hm$=1nfZi7XuvR@S4sfz(oR?mp)>?^%_rKvA4$3wC1l zhr9h~NgtL}G$#8k=YFM*G-lSio{;Yc&PxzDBa)~3m{`axHa?~;f5u$umgg=G9V{;Z z2k7DxxBOfrsldt7sHmjqS0|JcVVc$YO)-p3tSI-VZ4DNaw&3r~`Sz~1f1hNBmSXSr z2~lnCl?gO((I0{hofApj=cld_eY|8--@d%lZlh^0NtN1Z-VsWWQ{mY$ZOXwD61~?! z9+Z3vUk$$@ONORt`>IUCwsJS_pWZWbojJ8CKp9v{@)LY&dIS~NnbrxkV@v-At{>Hz z%7$7;6FfANZvHP7p001%69QDufKjBaB(?u!-;1K6D=28DX5iupq1_$VE&R&&hVng8 zcX*(?GF2LD>v-$^(U^#;1q}&t;knZHp3Q#{&KY|zHvQoppG(tW(l_MMJ8(j1YJW0f zg_;E|82*w-NITuVJ5uk#xNZqod8e#+aThA5Ohs}X4Yc5+e z+*$h4V*c>MqhK2!yqG@8HO{y~Rw?r-Q?r;UZ<2q>Drci{MEhE|*SXR75d$0T*NMf{ zncgaTYDCw=HmjdfCL_@>ZN1oT6zE-4SGJr>H{Fw%Ns;YR#&}E&9sJd9$#VA5$^=1R)48JhLgI!&P}FFdMmJO=l7Jje>o(5Px?>=vsZEhs@p! zsuu0BS-clY=PT=03brCFpt2e;&EFL~N#;pjl44UR;WXTECrVdyjOff6tJ#WUR*lP} zrMcS@4I{DEQaugRr#K_zrfmc=yKnOMy?)lXOi1)UUF37XYBpZKIe^-{u_9!<$3MQi zr~*|wNmNki+^#bfYoh1fw788Ki6+x2Nq~CgZlrobbY76fQs*7Y)0DL}giL3COk0cC9`dpJGp8I|j+}e>MVQG4rMHiND+NF3mZ?U92r3dVckt(aLmJbF1CT&DCX=FZ z+R|ZjRnEbGsZ)PXZ0DsHSOd9gcqkvAZhV*wnzH=0uwx1iVbXl-^ z-nR&Ib?#EtN$M(w*^&Cv*vw`SCZSCD2k5jkJ1bM7803BcJUlDukXeyicP{DA8pi+` zka)F@=SyVp%(%qdL;yAkN+Z*DYMV$-{ZH>+JEm2y<a>%&;$=FpB3iL#h!u=Z4BEd|U|!S4)8! z_tpuCJ1g6ZSei4zIA}K@q#J?-JomMrMPAVR!B#cDD&$%%?Q#|PS$~2W_78{JxAJ%v zww98rrYbLCEPuRLdJij2TUU{SNg$2a-i?umIc^~ksH9bKPi`+flo}RKR^_LZpA=al zfH3wkfHS6Mr0$KJ=O$`?-$2~2eK>expZr1uEt-!Ma7HS0gLOOP%U`WAXxys7>}VkrY1oC2M6y736~7Bup@-jK4HnQ5@5vJ!d@< z|NL54Py&n0yd&D$`n!-}j9^`cZ)r?yyzPlP0;89@WKOXyH+k$odvrL*^@BgypBHMjtY%0>Vnn@+GoSK#0_48=|n}8q;_L6gr z=g5|x|NAW z=8+u>v+4+as>MCaG-b{VyOW&}o+?lDl>3t{bK-)al5>$ssRv|}GigXF#_>H0Eew;h zZ)Z{eVu$8`xajn9S;iHnu2Sf&*h>doJ(LnScfu;b$_uxgVyi z=0C2x`f}M86a>`q=MaDO3^x}shrW?8Lqe2AJ zOj&71>Kn`)-RgR5#gWgSm6j_(n4{AP-3jk+xH9Qi65{3bQ=uuttaHk-g6q(Bj!%j2 zvYZ2z#mo($d57ym!30v1CkRoK+c$wU?fpFgCN;s~-C@OhT9Z*Sr&O_BZ3(2jz|OPR z+ot8Y5{yE-6<$l9a6PfEg7tQ!+j)<+J$4p%xwLrg!!z(q0_SQAOjr4OA0(^j-eW{+{va5K*qL}*Bh_)kq zqLF&2eszVvH_&U@-6oSi6+#f?YF&jpQW{jL*IJ{A95@B;ivBRAuzrTM2yhuMlzHwn zJu);Uj$s*1`g)Gibkn z-$X>DDH@6(06|UREenSNtsRk$A7(u4*s;m#Fp|mHsfF(03QjGkx>Wu0(BkCpBEA<$ zxFt5(E#fZgITPfm)1u0zWFqxm_U7nvN6dIv&NB|In)}^&mw^Xa{2UY6v`_dzuQl zxu1)L*%zs)@pMf#=gKc^VfO343bt>0D4AYH6;=oh($Zx%i`+T~ysYHi=droT!jpfr z>aI51w^@f?0ybQGg>fb3*id+hXXp2{j|q}ijLlswW?71WwPNKu)DGisZf-449b2^m zBCN2kjJ-9fr3~=c2A;tta@|?D?x-$%>7nbru<8I-zC2#5><||8;EBh+)L(C(o!cusoOg~$5Gv#xiy!}0{&>X zLmmtWvD(?Zj#hU*X{17oqKQ=SHgbMz5hnnGYyU9XxrBNHW z>xB}JxU1CST#=Hz5`+Oua_^(AAe$3I7~azZ)QLJEo8Xq!OlV8Y$fBmG82H`%+WckV zl)=&+aIK8+hh`1@eX{b`uW2NjU2f^gcv--CP4N?dZ+=mG`_#HAMmJYqC~JgnPn5^V zhAG!~*=P&QsFwS=)<6oBkv+#gBSL2*5T+GEgF#XaV`*4(t;s&m@i zt!4MIn14}JKKS=mvI%C}wL!&1DvDb+Hn;1fsl~%*b`)|Z`Iqlo_&HhHE%7qnFN^zq zL%Beur9W=7={EtTsVzk_1D9ltU|)R2nG&S*nwXcE(^~mc{|HAo>RLj_CDigS!?xJp z%ju)xBMPbW(u-Xg`>;d~7{f_CQl2^{UD{hwADX94`8`%>cE-LOV&{27wjAk_pB*ot zFvZy1GjC8b^(Uh3mwQ5iq=HUWnWG32tFtxu>+Te&ay%-suJ2$&Z}kjpgdJaw2fdXh z5;M=bdFjO=nSF1$)s6I+8z4}c0bL|A?QQPrt*opKbvO01mU?Wr%qx|_R*6keg z$2z{riK&jjXCrPa?S_Rlz4hT;i{u!Su=wvNFnkO3q{Cn&Et*;Kp|%SrNBa1t1D;j8 zqiq3{r!$s+_kAyOd*=ovKL{xHM31Wgud}fxkfks5QOzYRz;S^854*DQF_(MJS82=d zIkU{F%Vd4|!ciZRc=BHujab-^1{Jy+q)j+xZqv-)oAGEA$tydKoB3=(DsDHQu@{F# zHoZ{Zl1q5=OR3$q=B6n~GX ze`vQp>P6?>3LE=%sHNq47qR=+(#!(uOx1($*p$f0=KR69l17QS74IuL-y7%m4+{|- z?@(UHL!vw`;?mS1ToKffv3i+|&E2U?T-`N<@#hN%CoN7LMSMa8Vj+f{|~u7?q^=*#_F|L>xU zf{N|SzbVNxIx~n0KsIwN;D{>I(9c*sC?xqd>b=te2lxRMO&3O1?5Q_o+ludgIsJx$ zrv0}CgO;}Xb<6@VUV~ZuIl2L9v7T(&amyp~M_8zrA_3gQZcN2j@j6edY<^0ULmTr* z)o^?s19>H_v2GYOox{L~7kK(c4qG(ecF=JQc}CD+W4E_OD(+rZm^R^Gq$iYBx%&h% zW!q-`(p@E;t0!M9(BEgobvXLtiA@<*%Qqco!!@IBeF)KN3XwKDw6aGkDt4bZbG_ZX zoL*Sg^41){BV)t2i|BFBLQk`H5?#hOUEBv}wXI@uJwV@~vbWyK2d*G5T(RTHx7fzN zxw5t8n4MWOnS;5R+^j;O6~T6j;uKRz!Z-PzPmMD%NpGum8}(*v`4}9w(qk1wy(;5k zN;NsYx~j(<)<2|Y1^?Ri-n~<`YY;Cq^Kn-$!F1-rRo1TXbB!3|eih2v zO9VxoHzTN^ZKhY|s6m*ccURq|GdwnUjOMAstf%DOcB>oo@2WadC+3RjXgl+Q1`C{v z@|G6eGyM`+BD`&zND*@vIU!2bh&&h(v~O+w-p0aS5jx&BGZ(069an!H;xH&!8eeDh zZnYD>nE-9c9s2a^CR}xD@xUcRG-~`d%co6manTA7nl^}{47j52!9h;X{2poX%@PUf zSKNlyeYs7rY4=Q@I;*++z{2^p2rkYvzRTtg(&5gi8R!6$KKA<7b+jbIB?Lcs=C7r9 zq8rc{#;^ezI;x~46`v^016(GD!~B4k`Apn<*i9Ut83U0DI?OMfl0yl7eetmnuXfrE zD?FiVIzq!_6y@{c=|v4aWiZW*n7pFo!75WdaXV)$qWu$pcD32mlkvG^ zA1%eY`yWzZpfgTFdb|8kX0^Vtu>-0F7Rs$Br>Dayo*%Aw_2r3;_uR)sp2^DDT;|@{ z2U`x?w;jqVn^3i|Pg2tUsIMiW-*AihAvdmL zeo#r)$eb=uR;4q~TczZlL6UQ?X`W{aNwkh-Jh*-qjY(SsKiW*Im{|7NYbb$OvZX`M z5FqS@O|){-&qQJgF>a1(2m_}-M7fv`yefPzToZF!?udD<#pfc@Hx%EfT}HXvG17B> zY%7eLCV^LCjFQJ5Jy~6^=5KyQ;CS&%{m!2H}4LKD7W)ID%L}S>z%w!S5 zZN32FMSNyUKNt$iT*_pAwz}NhCexvQbe${%Ls{7zA^Q^0e9mr_@Lby;rdi`HX9v@? z*S!|Y?K{lbE)8L)PW5u##?~wO=EOzruIyA`dmO))j;=Z@Bz(}|@Lu%U{gc!}ws9di zT;sXd+D}n%>!jJrIBHe7ds_H5QuGVt=t-~vymKva^QS?4#lQd{P^g+@`t<}v(=)oI zu6aJ@jmMbX4Cq^8*VlvGM%zU_`&TukjVcD7H_P92a9l2VPf`fV#Hh961^Vm3)dA+2 zg>N1xjA+(uRl56gf@JA+p2D~pplHX3>o$NjRC{#h4OusTblul#137J_Qg8xGm&unu zsK*Fg29L>mbVCPOo9`+7x3aI4&px9NvK*{0GM;{eUeqjb$)3cP=JGwY5K zZE>K&koFC}(UB&X=zv~VR}O4y4=Y{KtugI3Ziz!P)9=YzIfNzE!=H-oGrQ2ZF^#{( zg1-2O=ttkb!uONLK>rsafkx6T)xf=nT|JzxM*R@D`h__Pef= zW{uOGBccZMzEdG;;6Cq)b9FvE>V-3&0MO*bwA|+$}O9?A|_a`CR?iTDs zpPr>De;``1vm@^`TIo!L?N>i34ntWm1A$Bk{FC**3Rc1&{-wXuV$iI}Yf&Kk>>5V= zSu?rJpFO-;x#fwOu_b_1=RLb!JK9F?ITzYQ=Zmz+>d`M%vOu}k{{k}!fmcz~%ePQG zHYc%!1_KyfL^QAI(h+%~vG`O4{v6G!$B)%nGuT97P=sfHP=r2M3T`WF*+GGVKvT#z zv*R?Z#Foupd)=HTFF-Uk#juVEYC!7`dYcwbjuO-_*Fc0_==_U%YCWB(pPl@I>8Tra z{8KW^nsah}J&t;wJ4Ax~g|%*TaUHlCsT%yit_(cv-lU0iDcYE{7iw8M&G-hzOZWFX zlAm9o33nPw)v|13B`@Exp{?}Ypt?8^nl`b{gko>t_E8l|6c(5{juv}P1-HIx6_K>WZwq8@8zkg>B2`EOZd>~%X51V645J5@}g|Qo;y2O zz;U@cdCaB71A`gZbU%Y;<0)E3fgtK@AdV z1g2SXs3VqY2bMbY{$no@#`5#E9Y-wt)Q+|7P5EAE;1o|POf;8{SkBE-wi9!)HR%hi z+E;KIJ@uld75&D2vAM~+7hefV9&LV_=B=%!y`8=wA~|N62BfW}#p9Z@!pg-am^Ww( z%BMhZ>0qaYM|O13{RxkIiBxi4NF^te62%DCF)RU8VdmuJgexq>XyFa$mYBJJ83QbO z?!;TP=)Si2*ymDIo*KS%_VI;YCO=Mr@qU|-djF>_$*cy>E>R<)Kzn6yb>A4Kyj~Zp z4t(;TR2DS=WK%9hQPtN$p&C=jh$;A)tkpEz-1+jsA1Y9!sK}V^s}i+g0sG^DptV`w z%R+im9(y$zB-Vr-!2vb*k-r4*BOCULkGbdN9= z(gEU6nr7Y$=#gJ9+$*07ckYUBuS_kN9Dhm1=U8yk;o-ObE80mWBXRkxW%s8#V9vnr z8;ccVUlDeMUBalUN~I;+$i-S`TZASl#SjUoxGun2l_Zh*qnsu>r$kDkrcrE%Xu_c1 z!UM&w?t8iS*h*}#X<$fEEkB{BSzpiGTX%#w4f57v$PNyu`W3s*#M?EtBI#Gu6W^N1 zJeR!uoxMQD;qC`%fcI^+OeA-;PB~h>uqd|b#ze(ywmi?#!E|#5O+E0EMo-7bX9moq z=uJC4;>kW%_#U*Fr>~?jiy+Ze{V4P(-?^xU-zj0^9k9;lmc_*#tnb%IG38X!BZgYCAx*PD+{ORi#>>-I3)xI$}C$#u2V9njb^!;690TE&(H0 zv21xU_Vv`9CvoXuH`$-kBZI@>^^tyqB34%NdHYthv1DEK(K`k7le)^mzn_s$O?3l6 zOphgnUhB!SnFyf!v;@ZNcP0~^D9;SXTG!W?{!sxPc;TC7oukJ~!~)*X*hq=yA!6@8 zX)J1*_BVTTc{h1sSV7oJEp2baSbmpV*xac1meSM)1;;Nt66=>5i zdbIj3I(A&ZtaO$O>{h)xcjao{EpCUc-wF-l8*VS%?H4aUWS6+(?XnRJjc%K$Tfk@` z1csc7RhFM{{>E+hUwn=$?+{UL4?}h@^(+1@fT?D>XHTO~zy^67O6|wd7gP8iXE9L& zx?`RuRM~#GS9QI0922-Yx=wagrY?22eXerRi>SxK@PMkrP*V473e1+|Xg@e=Zh-6X zWD%%zM2!x0R?&l~HS(NzPW4R2@7?nvchmw;#3Z#mhYD}TiE&x8hgADd1V;eW53)>A zN01v=&mi@~IrM3iFb^jsG?!CX0$oJ~6ie!R60UY5n0vq+VW_a5Nf*wsabgUWT((*P zX_Wn@au`L#*lcO@r>Lm-dt2&r#(iz~rD^QV0#(Apo~-nD-qGT)2y9|4memU+p9q*R zSc(7)Aul*s@BI9!Y-{-As{5&EmYWCl1a~(&8H~8?6?2ZcYufjR7&hmEtd(7*ezf^O z+dOuF{L%?!&BLtcua_mr@2x1X&)I5oj@=0O7IOTCi}yp}x0>!Q5zgK5`M1(%D`_Rt zgxK%Cr^txV;P1nGdMR+#gi_(+iBfW#u5N4+-)h^ON~vJi!l#nFLyx$5)Slkh#~VPB zn=)LM+s7NS)e@rGQlcTIJHK&v8X2g#uHGH}k;i*7ALK-ntz9msCtg~DMy#~&=UQ@< z5QCsSbL$Zb0_vEUMm0Nm(zGPTcVf+RT63`QQhAK<1`}hPs;!ZMfF3gVSY~h3d zaW;hruQ&TmHxm#*^kyFH$p+Eq1PBTW+nTubfYe^xj6|qU^Pvp*4i-dEv40!wTb4%z$A?JYekQv2s*CL1V7QsrXE52LuYlWEB!6zD|Hr$I7S;@e{f3fD0Su3uxM0j zgaIFzT0v{6mNHu}vm(&u0ipdKN^Xn09~(kqrCEQPoE1BDJ;E7tyRR^J<1L)c_T>*W z_X;wILp6(MqFoB22Eyd^ZyPu}$8AoI$-ixq6*NSffp-{us*| zn~OH;&htz)WT9vX;ZTik{G;jO6ZDu{rPILhWw^h)GMk*f;S8tDO1(;4lY9}x(87w{ z7N3Q&*B)C#>vG!XL!cQOVRTWa>OZ0}S&ZCasYhd93K#9nu%lyfWBNwcZh{NJD19C|-Y|L> zx?wQ;XFrv)TwcJkVltIx7dgMGrJlLU6`xJB=zf|X6Gx%K8t?_)7 zN52&`RGETv-1Y)O}q0ohvbC>U+PtOO{6NsW5ch_s_^={ zIkFz#e!$L+*>3Dq=qo#tGow$Ak>KIxmx=WEj^Jjw=Lf=*XP*HmrEG?$wze5 zC4S3ap-Z;5+>r8kvwX>P@%tf<_9y3&5|e-d#`#DrX1QNSq=jpg4Q2?xk0njZinST? zYMOZ`Qz!Hu=CtBM3Qx@hOwEV6EceL}X1SbN`~hIu^yI~6)LTBPLi;8=%uol7X<~5y zvh2i?SbH#55H-ToQI?Tg_JTZ(d1b=P3Zt?clPCKfVhRGx1DL&tE>#r1N;A8zRApTI z)vTY{AdtCgz(Wa&K^O+kKfSmK&Zw?>sYy$+W<3 zfU+Z?@V}4U%mj|^EjqWdBee5MP9_vdAOp;}{kqsMwIBzWsBB#+kYp@3v*$t!$-!3Q-Ky;OwpLdeM}+DGBa)c8{L1Vr*7& zwg18Y=Bz=oZpDom?&29ep?kWY4Q>h1KF42Q;K!FKKn=+j;<1CwrL%-+_TItU&bF?y zpk#?o^5%k8F_eGp111a|=DxYcD)i7EOw61c_uexJf?=|5MS!#Z^e%z*tcg=JyF+%Ut+-g^OqQg_XkeuxoEBun~x2wO(7#(gNtqT zo-Y+j#1k?ZGZ@r|x{yg3P__=8QwMw+7hBp|dN=8+;%xMdH1^{hRd3?ApYO&C&lodm zU%fB3aZR*Oae18;-2_6N3MgKDhDw2gQz7d`-xu49-q0@1x`@y@J-{Awv1{-yi(8ye z!W-K$AA9W&^2lY^o@~1EFD;!vs1I?^^=k_nhNpezUQ!TKSGX;aQ<;`sD1j)?{jr;+ z9FMs5BjVx5PN0&6j?$7?SQG=?dRQIl3943tI`9$<7PidkCmQ;`$_jWKs6uglj?wC+ z(|Bu`AF$$tStLY<-J0C7O`}KH?y?nqR&{Xo?W2Q%Hb@~zLtZ=2x%e1QaqXYo(Gcyy zCiK^H=#iPTbBt+X=z;DJ7H>`k%6?b;-w3g9~aTalCiEX>-B`x4h-3VYHSzZ%)1#EMzdxFbFW8JDZMxizEWHXxjqHW*bmebs zKCsIEFrBQlZ@`<{!zY$Gyd_<`>;7iu>!w>_#Vp_e;lyxr{$f8<**$j}=-$c1d7)8^ z9U^V`dGk_KarF(6I@Y$5Kt~#i7PMzQ0@E&25rNa>*XIoRTRlXPMxhhg!c7w;uf)?u z(S4EtQfJN$AJ={fIbb}=WqEFHPF2Qwe&mDLbYSi=xO(m8e#^xkOoW>4dIxfd@asRV z;USBJBr=>!jK{_)j%9U5F4EcSa57A;I^A>5r`cH-tZ<(Auxr~f6Ei008I#7^-te;E zZq(?9>;isEn$tT2DPk~Pns+QPyd6d?Wm*F4&?4X=@~a*kDfbdk7iR+BOOXwqr1*SC zl;z_bxfNl@3&qoR#xkd`H^v98);g_EmLWsRo`X&tqa*JQkq(s?*dSvhpsbKR8#7Ty zZ4$6ryX?F~fT+ovgX##t5LvI_iJ?2Xk7)j-bg}y~C`3n-v<6ATmm3|uX@-_Cyh7)0- z7yy(AOQUPj`i2qi4R zA|Yip?B^$9LOB#}X&Xn2(U72%H!7Y3@ z4EtcXquXAljP=fuGlwzvwmZPuLcDbNKHIlRD#$+1sZ1L3dgudF*g1k<$)FW>j^NEXEhQ^01dIRajok~oKWM}ko8T;BPnO%Xv~~3GGqM)yNr$< z2gBHL(Lcot&+ywDiPnkMCR+*LPuJugsfE2yg8HeT%WO*Bpj$wAB(w zvSBMC(g8g<=U(OWl@5zW&Z{~#-;4a!&+m{mv*u~HIn!*duVLLb(rs^R6WTO&_Lry4 z!K_4g`4(;7+gflL6-xxo;;p2z@R)?B3`mz{mA@jKqFubi= zn&9F3_9L2ntpK_Cd>C4v64Xtp=@*YKyp`OW*V}7qJHM^(jm?hR9mLhXv7!s28_*dj z!?ZlodkfaELm038LB^glQ?eT`tfDV^G_yj4D7$EZ>hY>mkeKz)`62XIiN7w#TsQ0k zmC#Dl?+xP91nqV&>`d=e<7**ZJ<4n3=GqhxjE#lLY0N5lb0yZWZd8W zXm0mTK_a&@O~0y2y{A;`ChO#=s#NRP=;RG&)W1Hdtq|K z0)C|8g<@^R9niILio85En(L<@x#m}wwb@B^oOU8 zOE+{}cj!p_5_fsNbbW%b+vm@~){CaC-nSknUOw6FcGZPGa4V<`K`|o0OJCh0MEL64 zDYUdc427hT=l0(8z{Z>Yl_aetwB{gv2P=x0yC9 zc~NGuIC)X!we*Z_H>0V||I^-gM>UnT?*if|!zd^sC@5Gn3W$zUl#)2=U;}X&MGZ|+ zh(JJ^p%ZCKPXP&Lr&rk}>;BLbC2>4z>4kYrkwjl@G#NQ6chMW1?7L8&k2=c}rC_)9miP1Y$BUPIg<+He5*Ws+ex!6W1v{%NS(%;>G)57uw{am$E+eRFvaEBhuir5f0n>De=IhW_6uMrVH=c zBZlFT!pWX!N~_&QW$uHEtMoHgocOi+m=7#UbPbqOyt)GU9(=Rq!ncyIN(3gx{kl~t@k{pMPXKSfZJO&vtVmJ<0OBH_0xWPX-1_vjHXK4fM zk%=_-vXpGAilu25jhA^Hd#5!zMzPafIXQ&mR5}MM9qT3AB+@d{lBq9%pm zW}k0ewJuqS9(ivd!a%vyFg6>*(VT`a9&+qYK08(@mgn=B*dpQNg-qun3a$)Y{!d1z z?rT+@=P=Z%DI{*C48!yM5SJb)l)__8^&T4eLubg3R-@gZ(8|j>WbLRz-)32WwQaFK zpYK@}f0hwE{=PD8vVBWdSu}ho&#LB$j}NwK>Ce>7FuE1Qrd79{JCb>LT&=3pltNhS*Jmrdr)s55Ro3ol4#BRW z$;d@T`R93Y-b~tI3-*Up=H5%Lv^1_gyWJ{qwLC8FrO)GJt5ME&oDXiP?{%l|C7&+K zH6N2PuL3JF&Su$YXu2!fdh_x|T5ofU?@Abma)@)wPbSF*CsIw;G!JAeRujrsU?TGp z7_Wv3CP&RlC8A|w$}U)C*`L83;i;# zu3`TdEz|vCtiVvls=~+vsWz7D+OV>3ysjOgr($|$kg12)3I(XjtwNmFlLDT6o^G6O zrFeZPd#g5$XlWyh*J#MAqufBbgh*4ED3Gigs+kxgJ1)`kyI6sVBjB~&hfX4icVaUfthTWG89Asx4%TuG z7W78e`ZLZDn{Alu$Ok;G;0@GgKeq(Z6k2V)J{LUH-m~{;DYN>5+JSX)8r?UwYO-`~ z0wlMbsCU~pty1#QFeV>k>-pJNUEOit73`tgIJ2wT4u=Fj`tgl>M(_yU@P4Kg5|za_ zytHEQeZq`AIXiY~jm^Slk!X9~awl+meME>EU=ISa-jv{S%cp4whWTDtj3<`*>HB&c|d=*Q&cdL+TY2?5o81&uj0@B ztDs><=Dvq>A&qOStqpZ&*lKjB4SIIvVmxkE$&fe4-vGlxAT8G0=~Vth4@V!ig~a@v zXDnd$0qpijjl0{iD=TIF3*9>hC)ou<#hXY{x=kBzj08|OEiYdsf`Hc^$oG;SS0!Y9 z8ITQ4gC0E1j|{V*xnE*GYduoq{zS0K z(4KKH_K|jKPY(~!5+@=xUbu;0sic=ExJq2Qe=ZeV`pDyf9!}T)7Y+-KvpsQ zG~mi!Hj<-b8`>Se@@ZkLn)GHQ?f&R`j(8_k91ebN$iIcS?bac{5!wApA0ALlqMbW( zB8ubFCPW{;AB>QVi4LI0&e?i=tkviQP$Jm=n0iO2{_4KMH=J@<7vRo%a#?fP(M}RK z(ouCAJ$brN#?<9g2xF*9X}n*wwb}X>V85#Hru_(ZEm!;nuwPn>!q4{WqKZjm0#{Fu zi}$UEK`>M!aYzEmJ{^pPvsztzRHT;kWA3ztd(51druU3K({zjRo}cOzHYpJ3F2)>qygx_v)7OlJy>|$FqhjAKX(q<8k!1Lffr<>SX|60=`q<|JcS>=yFBY zzS{$$=3_-tsDv76i?P~)Re7ZT0EOxqT)ue~yCE@?r`}c+<3`{R+Ntw-NZ||aP7o`t z7@Mu4-t{Bt#;h_V(srk4_AN=fs>yv>7%x53l_uq0sLUO(^p>uYbloV-(8txXZyrRl ze1nvJhO?$w-zq@V42Yn^Gcu)3r9c$K5u#94wK|tWDDZOan_I?GIMuFI$h08`wx}1V zrXYpNl{2MvKmI|b+dl8gkm!eVRgI(?59O6rvc?~zjMMc9wu!={+5yQI>Mz2waB%=) z$+jF-3?McaBDAAsGHiufkZ$SVKtyRK{rbe<^VUq}Qt|;;%{fj&R+%BULn2){dXkm{ zL?W>7y3yL^!IpJ>zhLUIOLWVxH`jQrnP-)$mDNhr_YQThxMc*6{3Lil8*yZQn9t*Z z_&=n4&(t#QsfAL`hy#)LpkTrjFfpTQKo%YE}fVh=H6JODdLh8s9zzEA)7@e-E<4 z@ojO0zQBt6e4Kd>T;h;qbKFXe0xRbsZg~phy1mWD3Yth!Ty=X*6i_cy*Up&ikrBJH z+E#O#4DMvo`aa`w(i`_(fqP5UID1oux>dEx8_FL|vgej{iiWm-JWefG8d!*{Jv+0+ z%oFBwG6ndW4I&Olr9IA(G@lew3lSLT=+}F(FTI4R8CH5G+SrdKVzfwXUuV zBtqWvt9){`R#r{`(ZMN+>rRYq^*Uw~^LBQ9Z`%EOgb@X$)&Igm!17jFW^a6%Y2*N{ ztmR#8!{)R!8!w5$icqE`(~akDPhb;xwv4zZV55-ltd)?tT+YCv(jm_Ug}y9GTh;n| z3i~_3Dm$ufQe{qEQci9kC!tU()^ie{=1}r(vN&9{Q<*tkdoJ_R6*&xX$RNQqa<*#2 zDQ<_9@gc&lX`$0Ro9`L5s=oijM6G|gKdoh~QmoTX zu0ScIl9x+}clK`$pswD7zX$Umr6sIBO9Nb$y9*-F?Jv)PEU$^k7MiD}hXaK9RS#oR zif1~e5DJwoeZFI|?g^<>IYdjY$}WM%JGb}1s@OKS(;gN&j`wf8&S&CQYSnDgm2>F- zbh4c@esiR&Y%l-{LgiRk%r76f%YSV1(BxwW3o++18!a&BgSGk@VIlLu;ih{JF!J6d zO%*yPHY>ifx7Can z-eBj%7-6t~3fe;2>d)a>lU1)QIJu4YM|z2JAwVysq2_RBy=J3`;x)vSckZ@4v-XMp zL-s5nnSY*F)0X}{aUEs(IJazt3^I$j^Z|&)_ea=8NG$HQgM<7RJGJaDU*4*kVj?4l z?LI_HtO8!NKXTr-AQVA+rj|Xa-;;BDQGSDDVxuI zvuyX2*P3>_=3q}U0^Sm&`57JiqF}M_-dMfEid4>ruID!*^1B~^asLde`jd|(CPH?N z-j&vV80XV*Q(0cX{u}YigT}`XKxy9k8|hb4ZT#0#=}GG<=&hag-hcZXGA0K zPCR~sNnnLzhK6R@Mvj;>VnRD$9c#`W;^%-C{Li`k5%d! z)FK(%?r<^5^S;d5eI@lVka?ya{ne9=X;RG5ipO@}O^~_x=De}1V=8qMi5UDvxBg-$ zh)=GYVfvIV_3YugjzfU*%$>SCmV*?Kq) z6?v!II5eK45c1~QDD*%J zZFX$%m$sQS#A%&uPi{%_v|P}Wbc3tYE96&i$=wd%bm1|Fug^4#0FG?syDATCH)ui5 zK5sw`PBChn-tnT<0JChAY-8uve)sM}qy1~=r$Q&SOTtM&ry|pu>jl$t4fht~ZVE7@%3fF-H%|S*O|KMkwcj}sV4D(e&Rl3rD z^OKa609{sJoj0anY6I1--&?+5rp4I)8vE^Ly}@U~Yr!IT`KSnBVLnBvfO@yK?dS$x zA>ca)csomWEx9KWM7gj*Zhzm*WIESq)zHJ12VTbK9nEjsX;0v02Hs?q)=HE`*qpLE z{6Ph28<+EwD;rG862v1t!7~`>8Ov^LG|@1mRHvGEKijM9%E+=lMvPa3IVPUPu`G~N z)26D$kPqCM^J4fEks*{l)cHnR1ippI6%>=4o!a9yjOJ-$Dk){ZmWl0P?wv{Xkol`UL6XO#N+Wh1Pup@_l(Ujz~3VTw>Rlf?K4GJm-jO}D~ z8;QrZT|aHJ5g+Te|+{H9QPk%3dA zz_(ouTn0tLrTJ6u$P1!WS(jzBlx2|JNu}0EjfA;3ce~w|(iz~zCAJ=+IJREbpwwHv zh{(C!x?#=R*&dR3<#9gR*uZsMJW=V&htoMYn8LeS1mNm-oD9(`9vsN)%ym=_R!J;1 zV04piZ`5$rESTwGWcT{#nSXwo7Z`uj{pK9lYu43O6{!wCL_^Qjv)R!M@#w=WIAHu1 z^Ki?1BY4{GQFqCTp#n{YYTBM|T`$YeA6w1Sx*y3EcgwX(Eb}zp*Fl$2M6@k|eaieq zxQGZC1{bQ2BdeT+tl*7}_WO!dmKY_;p6B=PBT_@OpCF-K&C;0!{joC*5(#>xNM_Yw zb1_J4@VstGoJ)nPcr2yBJ6xYn%u{+I5F@9 z&oF^=d495Y_~#-LNmQ(%1aehm75I1q@@1gMM7k|2g#Kmm+n|1%}1xURHZ~Qfo&o^2d5GiZ-pQAOI@oCN@ zchj}Sy+;_KrGV}aHjp&}7$cR3kVbhZ%%-YJN^|)Se}I*KyyS2cG1)mtapK48CVb(P zDD_?|1HJ<+#;)q6|71(JSm_FlU4iu&)gPQ{Kxt!zdoul%wXP>n0$2Xll)4R}j3Vi3 z{K)8%fP+{XiQkRdfKRBYQ-wNa9$lZaNBhTE%!26v7y74CY5x+n9}F-Sozw)mAQ?Hj zOks@n+t{LE5yiRC*TVz-#mGYSj{~Uhw5>ou{UIRGxeo()5)e(JJaa=2i|LeyvKvgV zwKjP?urxieiaA~KX2jHM{F(Z-nWNL;&YOkC;JT`G${i8tG4lg^ACirEf*8LDkMP06 z;pgLW0+M&MXxmrc?)(f%uF)LDAhmKv+l^-2csLJp<`Vm{0(VxAfA1B>JG#WV-@!zy zTuk^u{|1qOZas*)%l9l43H(E{;R++OH!W=~Q_6GdDOm0+m+nvOb9-K0G8qEV_5&g+ zd2@@iSaj_4Y1yd#2Pn<1t9_dQ9WTfP-{d2<8Kmn?`+a{PW3~a5Tbu8^Qj=jjaoM9Y zO0<&)*&b}($L_l3a{VPxnt^h-w*HK~!0HoK_b({H$DK7-LR|+E56!p|9zm*3JHO+CCUk50Wy%K%QVKqAR>cJY`9Q_$eEMu*XMZzr? zybfmgD}-J|JF;A-8WVy`oi%p#cHDIuYvDC}Y#V6KgSNq{( z1bo*b!6O~8g&#cfaAh|e_672T2N;;O;YPhf5Dn0SATKRHrvWCuXW{VDNK6`;5a8`U=5S`+09Z)o}EJPcf= zOFp&a{~YdAk;$;7+rV#sHHK%~BFzrt^qK!pLiOKm#*Q66w+Sl8=sG5k58eBzx~ z8{h-_XW|SqRItmR+9&c>rK$nBlNgpEDv1``^XtodIQw8=Bp-eUR=ITHkJH>YyC4Ll zXcXa@*d-YFU%>Y_D2Y2M9}zH1?H4*uy%Jg^2>*Yuexkhuc~Soe)Vyt1-T%HbMF~Bt z%U}Sw=oU5F5Kk1lB6G0 z7@you1fuTy8JzbyR$v;|92e=6*!FUpttm8PCvb15Mx%@fBu)Qc&OeMgVgOf`BQN_S|SVal0?_i?R*OPbt#fR z0?|1obul3MPjJ1Y{;S3+1{;Z|_rS-dOclaSxNJs-L)z%wR@9n2}8M zO+GWiEnQ=~qzk_O-1ibJ?2<2@zjy}psO)rpZ!f$aDJY0P*DCIQ^;cDtR8aRH{E2oz zWG8fH{J^*P1>8p};b-_6$LE`e-whe%MkXKsz~MKdt`H||-%mS`bMz0xqPG&PSIh4f z7hFomNw45@NLyHbZdd}5e|h3U6h_c*BdW`F_kzlE&&MJ8#ML%FLs|_uAoBbdJ`OAs zeqgg#%Jax$@Y{wWL5G7XkL)`_E|j>vbN_ArU7Bw~ z@1o?eSj9!%>Kq8rr$t8fX-W>aA`k-!`0j)ucOIkPM;yLZInD;3|ECDd8sT$`m_6!n z0h#ICbs*)hbUp|mYux>t5bYIl7yDAN5;Mcmnsh%8^VRH6~7$*=XD>P5`;i< zK9W)k-n+9kj&S0J%HpxUh&5Ei1>c_Ybsx>2_MZ=YCH4IC(wCFBLfqUl3tl|dbD%?s zVOc~3=f6GY9>mbG)KVmdzMa1Ta<=guo%+qx{0|)iyKFsYzIZGvnBJ<3i2vJ4UybLx z73{J)3BE{i;ry8}edZ{Ye_!{T_i*=o9xI77om)H>>K4>3iz6J(7BpK>5c?Kj(b|I6 z7PRDl%c|s2CWbPx#qD3Ir;?{C8<$XSTY={IeI} zi-3i?=)cQFs9Qib^+jb%RJL5)cc8K*DqEtmB`RBfB~qcc#LzpH=ndp=ZUzgWH;~c$ z`sj9x1zR-G?G|4ictT~%uXgXCo0HJZNsH+Ns)?bR7`m13+Z~SLsQ7}4FR1u}iZ7`6 z@`XX8yI{~=Fz7BAw4MC_w4LPrUMThLUV#6nfHr5UasA{H0Rf-gm4(*7T}%G%=#O&$ zDW*z-I(Tclf7yMjClo@JNcxxOTEcyvBxh#*3rWWa>d-~b{)_x|qNuj14gW6*d*A2D zfUv^9JZ!Y>1HpPAdGXUWMaPP2uiubd+&8{oeJvxC)3kV~4_iMFG+qZRzN1MHQE$88 zZoPP@YcN!_S;=C;l_4xkOr~Wn9!edC(o4Oxcni`6uwfIUZShc1Fcjw8zdUDzx?@4_ zBagb{E853T+c-2kz5;%J6-2>mf#$v(1*>oOL&C$_Xzf_=SgS8u$`^2GakP{#tiLF; zT97q@LMYK)SbtHXyO5-zeaFK3i$mMMg(MAa0~gj`v@8FQGV|phUsNRdc8?u=p%%8eG&|7j_)}2Ne^362Bn;f5(pK9Zvb#?8g5BiE0DS literal 0 HcmV?d00001 diff --git a/public/splash_screens/iPhone_8__iPhone_7__iPhone_6s__iPhone_6__4.7__iPhone_SE_landscape.png b/public/splash_screens/iPhone_8__iPhone_7__iPhone_6s__iPhone_6__4.7__iPhone_SE_landscape.png new file mode 100644 index 0000000000000000000000000000000000000000..c6bd57a4cee1103987c2e7bc03fad71922e1ad79 GIT binary patch literal 30258 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 literal 0 HcmV?d00001 diff --git a/public/splash_screens/iPhone_8__iPhone_7__iPhone_6s__iPhone_6__4.7__iPhone_SE_portrait.png b/public/splash_screens/iPhone_8__iPhone_7__iPhone_6s__iPhone_6__4.7__iPhone_SE_portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..24788f1a3b0c06cc4378e9d122aa1767ea628abd GIT binary patch literal 31835 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�^C;8Oi(IDR1 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 literal 0 HcmV?d00001 diff --git a/src/@types/country-language.d.ts b/src/@types/country-language.d.ts new file mode 100644 index 00000000..c0badd74 --- /dev/null +++ b/src/@types/country-language.d.ts @@ -0,0 +1,21 @@ +declare module "@ladjs/country-language" { + export interface LanguageObj { + countries: Array<{ + code_2: string; + code_3: string; + numCode: string; + }>; + direction: "RTL" | "LTR"; + name: string[]; + nativeName: string[]; + iso639_1: string; + } + + type Callback = (err: null | string, result: null | T) => void; + + declare namespace lib { + function getLanguage(locale: string, cb: Callback): void; + } + + export = lib; +} diff --git a/src/assets/README.md b/src/assets/README.md new file mode 100644 index 00000000..d3820f45 --- /dev/null +++ b/src/assets/README.md @@ -0,0 +1,9 @@ +# About the languages + +Locales are difficult, here is some guidance. + +## Process on adding new languages +1. Use Weblate to add translations, see contributing guidelines. +2. Add your language to `@/assets/languages.ts`. Must be in ISO format (ISO-639 for language and ISO-3166 for country/region). For joke languages, use any format. +3. If the language code doesn't have a region specified (Such as in `pt-BR`, `BR` being the region), add a default region in `@/utils/language.ts` at `defaultLanguageCodes` +4. If the language code doesn't contain a region (Such as in `zh-Hant`), add a default country in `@/utils/language.ts` at `countryPriority`. diff --git a/src/assets/css/index.css b/src/assets/css/index.css new file mode 100644 index 00000000..08b24f68 --- /dev/null +++ b/src/assets/css/index.css @@ -0,0 +1,233 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +html, +body { + @apply bg-background-main font-open-sans text-type-text; + min-height: 100vh; + min-height: 100dvh; +} + +html[data-full], +html[data-full] body { + overscroll-behavior-y: none; +} + +body[data-no-scroll] { + overflow-y: hidden; + height: 100vh; +} + +#root { + padding: 0.05px; + min-height: 100vh; + min-height: 100dvh; + width: 100%; +} + +body[data-no-select] { + user-select: none; +} + +html[data-no-scroll], html[data-no-scroll] body { + overflow: hidden; +} + +.roll { + animation: roll 1s; +} + +.roll-infinite { + animation: roll 2s infinite; +} + +@keyframes roll { + from { + transform: rotate(0deg); + } + + to { + transform: rotate(360deg); + } +} + +.line-clamp { + overflow: hidden; + display: -webkit-box; + -webkit-line-clamp: 1; + -webkit-box-orient: vertical; + overflow: hidden; +} + +.google-cast-button:not(.casting) google-cast-launcher { + @apply brightness-[500]; +} + +.is-mobile-view .overflow-y-auto { + height: 60vh; +} + +.h-screen { + height: 100vh; + height: 100dvh; +} + +.min-h-screen { + min-height: 100vh; + min-height: 100dvh; +} + +/*generated with Input range slider CSS style generator (version 20211225) +https://toughengineer.github.io/demo/slider-styler*/ +:root { + --slider-height: 0.25rem; + --slider-border-radius: 1em; + --slider-progress-background: #8652bb; +} + +input[type=range].styled-slider { + height: var(--slider-height); + -webkit-appearance: none; + appearance: none; + border-radius: var(--slider-border-radius); + background: #1C161B; +} + +/*progress support*/ +input[type=range].styled-slider.slider-progress { + --range: calc(var(--max) - var(--min)); + --ratio: calc((var(--value) - var(--min)) / var(--range)); + --sx: calc(0.5 * 1rem + var(--ratio) * (100% - 1rem)); +} + +/*webkit*/ +input[type=range].styled-slider::-webkit-slider-thumb { + -webkit-appearance: none; + width: 1rem; + height: 1rem; + border-radius: var(--slider-border-radius); + background: #FFFFFF; + border: none; + box-shadow: 0 0 2px #000000; + margin-top: calc(0.25em * 0.5 - 1rem * 0.5); +} + +input[type=range].styled-slider::-webkit-slider-runnable-track { + height: var(--slider-height); + border: none; + box-shadow: none; + border-radius: var(--slider-border-radius); +} + +input[type=range].styled-slider::-webkit-slider-thumb:hover { + background: #DCDCDC; +} + +input[type=range].styled-slider.slider-progress::-webkit-slider-runnable-track { + background: linear-gradient(var(--slider-progress-background), var(--slider-progress-background)) 0/var(--sx) 100% no-repeat, #1C161B; +} + +/*mozilla*/ +input[type=range].styled-slider::-moz-range-thumb { + width: 1rem; + height: 1rem; + border-radius: var(--slider-border-radius); + background: #FFFFFF; + border: none; + box-shadow: 0 0 2px #000000; +} + +input[type=range].styled-slider::-moz-range-track { + height: var(--slider-height); + border: none; + border-radius: var(--slider-border-radius); + background: #1C161B; + box-shadow: none; +} + +input[type=range].styled-slider::-moz-range-thumb:hover { + background: #DCDCDC; +} + +input[type=range].styled-slider.slider-progress::-moz-range-track { + background: linear-gradient(var(--slider-progress-background), var(--slider-progress-background)) 0/var(--sx) 100% no-repeat, #1C161B; +} + +/*ms*/ +input[type=range].styled-slider::-ms-fill-upper { + background: transparent; + border-color: transparent; +} + +input[type=range].styled-slider::-ms-fill-lower { + background: transparent; + border-color: transparent; +} + +input[type=range].styled-slider::-ms-thumb { + width: 1rem; + height: 1rem; + border-radius: var(--slider-border-radius); + background: #FFFFFF; + border: none; + box-shadow: 0 0 2px #000000; + margin-top: 0; + box-sizing: border-box; +} + +input[type=range].styled-slider::-ms-track { + height: var(--slider-height); + border-radius: var(--slider-border-radius); + background: #1C161B; + border: none; + box-shadow: none; + box-sizing: border-box; +} + +input[type=range].styled-slider::-ms-thumb:hover { + background: #DCDCDC; +} + +input[type=range].styled-slider.slider-progress::-ms-fill-lower { + height: var(--slider-height); + border-radius: var(--slider-border-radius) 0 0 5px; + margin: -undefined 0 -undefined -undefined; + background: var(--slider-progress-background); + border: none; + border-right-width: 0; +} + +::-webkit-scrollbar-track { + background-color: transparent; +} + +::-webkit-scrollbar-thumb { + background-color: theme("colors.video.context.border"); + border: 5px solid transparent; + border-left: 0; + background-clip: content-box; +} + +::-webkit-scrollbar { + /* For some reason the styles don't get applied without the width */ + width: 13px; +} + +.grecaptcha-badge { + display: none !important; +} + +.tabbable:focus-visible { + outline: 2px solid theme('colors.themePreview.primary'); + box-shadow: 0 0 10px theme('colors.themePreview.secondary'); +} + +[dir="rtl"] .transform { + /* Invert horizontal X offset on transform (Tailwind RTL plugin does the rest) */ + transform: translate(calc(var(--tw-translate-x) * -1), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important; +} +[dir="ltr"] .transform { + /* default - otherwise it overwrites*/ + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important; +} diff --git a/src/assets/languages.ts b/src/assets/languages.ts new file mode 100644 index 00000000..192f4d6e --- /dev/null +++ b/src/assets/languages.ts @@ -0,0 +1,88 @@ +import ar from "@/assets/locales/ar.json"; +import bg from "@/assets/locales/bg.json"; +import bn from "@/assets/locales/bn.json"; +import ca from "@/assets/locales/ca.json"; +import cs from "@/assets/locales/cs.json"; +import de from "@/assets/locales/de.json"; +import el from "@/assets/locales/el.json"; +import en from "@/assets/locales/en.json"; +import es from "@/assets/locales/es.json"; +import et from "@/assets/locales/et.json"; +import fa from "@/assets/locales/fa.json"; +import fr from "@/assets/locales/fr.json"; +import gl from "@/assets/locales/gl.json"; +import gu from "@/assets/locales/gu.json"; +import he from "@/assets/locales/he.json"; +import hi from "@/assets/locales/hi.json"; +import id from "@/assets/locales/id.json"; +import is from "@/assets/locales/is-IS.json"; +import it from "@/assets/locales/it.json"; +import ja from "@/assets/locales/ja.json"; +import ko from "@/assets/locales/ko.json"; +import lv from "@/assets/locales/lv.json"; +import minion from "@/assets/locales/minion.json"; +import ne from "@/assets/locales/ne.json"; +import nl from "@/assets/locales/nl.json"; +import pa from "@/assets/locales/pa.json"; +import pirate from "@/assets/locales/pirate.json"; +import pl from "@/assets/locales/pl.json"; +import ptbr from "@/assets/locales/pt-BR.json"; +import ptpt from "@/assets/locales/pt-PT.json"; +import ro from "@/assets/locales/ro.json"; +import ru from "@/assets/locales/ru.json"; +import sl from "@/assets/locales/sl.json"; +import sv from "@/assets/locales/sv.json"; +import ta from "@/assets/locales/ta.json"; +import th from "@/assets/locales/th.json"; +import tok from "@/assets/locales/tok.json"; +import tr from "@/assets/locales/tr.json"; +import uk from "@/assets/locales/uk.json"; +import vi from "@/assets/locales/vi.json"; +import zhhant from "@/assets/locales/zh-Hant.json"; +import zh from "@/assets/locales/zh.json"; + +export const locales = { + en, + ca, + cs, + de, + fr, + it, + nl, + pl, + tr, + vi, + zh, + he, + sv, + pirate, + minion, + lv, + th, + ne, + ar, + es, + et, + tok, + hi, + "pt-BR": ptbr, + "pt-PT": ptpt, + uk, + bg, + bn, + el, + fa, + gu, + id, + ja, + ko, + sl, + ta, + "zh-HANT": zhhant, + is, + ru, + gl, + pa, + ro, +}; +export type Locales = keyof typeof locales; diff --git a/src/assets/locales/ar.json b/src/assets/locales/ar.json new file mode 100644 index 00000000..91f0b052 --- /dev/null +++ b/src/assets/locales/ar.json @@ -0,0 +1,416 @@ +{ + "about": { + "description": "sudo-flix هو تطبيق ويب يبحث في الإنترنت عن بثوث. يهدف الفريق إلى تبني نهج معظمه بسيط في استهلاك المحتوى.", + "faqTitle": "الأسئلة الشائعة", + "q1": { + "body": "لا يستضيف sudo-flix أي محتوى. عندما تنقر فوق شيء للمشاهدة، يتم البحث على الإنترنت عن الوسائط المحددة (يمكنك رؤية المصدر الذي تستخدمه على شاشة التحميل وفي علامة تبويب \"مصادر الفيديو\"). لا يتم رفع الوسائط أبدًا عن طريق sudo-flix، كل شيء يتم من خلال آلية البحث هذه.", + "title": "من أين يأتي المحتوى؟" + }, + "q2": { + "body": "لا يمكن طلب عرض أو فيلم، لأن sudo-flix لا يدير أي محتوى. يتم مشاهدة جميع المحتويات من خلال مصادر على الإنترنت.", + "title": "أين يمكنني طلب مسلسل أو فلم؟" + }, + "q3": { + "body": "نتائج البحث لدينا مدعومة بقاعدة بيانات الأفلام (TMDB) وتظهر بغض النظر عما إذا كانت مصادرنا تتضمن فعليًا المحتوى أم لا.", + "title": "تعرِضُ نتائجُ البحثِ الخاصِّ بالعرض أو الفيلم اللذي أريد، لكن لماذا لا يمكنني تشغيله؟" + }, + "title": "حول sudo-flix" + }, + "actions": { + "copied": "تم النسخ", + "copy": "نسخ" + }, + "auth": { + "createAccount": "ليس لديك حساب بعد؟ <0>أنشئ حسابًا.", + "deviceNameLabel": "اسم الجهاز", + "deviceNamePlaceholder": "الهاتف الشخصي", + "generate": { + "description": "جملة مروركَ هي بمثابة اسم مستخدمٍ وكلمة مرورٍ. تأكد من حفظها بشكل آمن، ستحتاجها لتسجيل الدخول إلى حسابك", + "next": "لقد قمتُ بحفظ جملة مروري", + "passphraseFrameLabel": "جملة المرور", + "title": "جملة مرورك" + }, + "hasAccount": "لديك حساب بالفعل؟ <0>قم بتسجيل الدخول هنا.", + "login": { + "description": "رجاءً جملة المرور لتسجيل الدخول إلى حسابك", + "deviceLengthError": "رجاءً أدخل اسم جهاز", + "passphraseLabel": "جملة مرور من 12 كلمة", + "passphrasePlaceholder": "جملة مرور", + "submit": "تسجيل الدخول", + "title": "تسجيل الدخول إلى حسابك", + "validationError": "جملة المرور خاطئة أو ناقصة" + }, + "register": { + "information": { + "color1": "لون الملف الشخصي الأول", + "color2": "لون الملف الشخصي الثاني", + "header": "أدخل اسمًا لجهازك واختر ألوانًا وأيقونة مستخدم حسب اختيارك", + "icon": "أيقونة المستخدم", + "next": "التالي", + "title": "معلومات الحساب" + } + }, + "trust": { + "failed": { + "text": "هل قمت بضبطه بشكل صحيح؟", + "title": "تعَذَّر الوصول إلى الخادم" + }, + "host": "أنت على وشك الاتصال بـ <0>{{hostname}} - يرجى تأكيد أنك تثق فيه قبل إنشاء حساب", + "no": "عودة", + "title": "هل تثِقُ في هذا الخادم؟", + "yes": "أثِقُ في هذا الخادم" + }, + "verify": { + "description": "رجاءً أدخل جملة المرور السابقة لتأكيد أنك قد قمت بحفظها ولإنشاء حسابك", + "invalidData": "البيانات غير صالحة", + "noMatch": "جملة المرور غير متطابقة", + "passphraseLabel": "جملة مرورك المكونة من 12 كلمة", + "recaptchaFailed": "فشل التحقق من ReCaptcha", + "register": "إنشاء حساب", + "title": "قم بتأكيد جملة مرورك" + } + }, + "errors": { + "badge": "تم كسره", + "details": "تفاصيل الخطأ", + "reloadPage": "أعد تحميل الصفحة", + "showError": "عرض تفاصيل الخطأ", + "title": "واجهنا خطأ!" + }, + "footer": { + "legal": { + "disclaimer": "تنويه", + "disclaimerText": "لا يستضيف sudo-flix أي ملفات، بل يقوم بالربط مع خدمات طرف ثالث. يجب معالجة المشاكل القانونية مع مضيفي الملفات والمزودين. لا يتحمل sudo-flix مسؤولية أي ملفات يعرضها مزودو الفيديو." + }, + "links": { + "discord": "ديسكورد", + "dmca": "DMCA", + "github": "غيت هاب" + }, + "tagline": "شاهد عروضك وأفلامك المفضلة باستخدام تطبيق البث مفتوح المصدر هذا." + }, + "global": { + "name": "sudo-flix", + "pages": { + "about": "حَول", + "dmca": "DMCA", + "login": "تسجيل الدخول", + "pagetitle": "\"{{title}} - sudo-flix\"", + "register": "إنشاء حساب", + "settings": "الإعدادات" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "علامات مرجعية" + }, + "continueWatching": { + "sectionTitle": "متابعة المشاهدة" + }, + "mediaList": { + "stopEditing": "إنهاء التعديل" + }, + "search": { + "allResults": "هذا كل ما لدينا!", + "failed": "تعذر العثور على الوسائط، حاول مجددا!", + "loading": "جار التحميل...", + "noResults": "لم نتمكن من العثور على أي شيء!", + "placeholder": "ماذا تريد أن تشاهد؟", + "sectionTitle": "نتائج البحث" + }, + "titles": { + "day": { + "default": "ماذا تريد أن تشاهد في هذه الظهيرة؟", + "extra": ["متشوق للمغامرة؟ قد يكون Jurassic Park خيارًا مثاليًا لك."] + }, + "morning": { + "default": "ماذا تريد أن تشاهد في هذا الصباح؟", + "extra": ["سمعت أن فلم \"Before Sunrise\" جيد"] + }, + "night": { + "default": "ماذا تريد أن تشاهد في هذه الليلة؟", + "extra": ["مُرهَق؟ سمعت أن فيلم \"The Exorcist\" جيد."] + } + } + }, + "media": { + "episodeDisplay": "\"S{{season}} E{{episode}}\"", + "types": { + "movie": "فِلم", + "show": "سِلسلة" + } + }, + "navigation": { + "banner": { + "offline": "تحقق من اتصالك بالأنترنت" + }, + "menu": { + "about": "عنا", + "donation": "تبرع", + "logout": "تسجيل الخروج", + "register": "مزامنة إلى االتخزين لسحابي", + "settings": "الإعدادات", + "support": "الدعم" + } + }, + "notFound": { + "badge": "صفحة غير موجودة", + "goHome": "عودة", + "message": "بحثنا في كل مكان: في الخزانة وحتى تحت الصناديق، ومع ذلك لم نعثر عن الصفحة التي طلبتَها.", + "title": "تعذر العثور على هذه الصفحة" + }, + "overlays": { + "close": "إغلاق" + }, + "player": { + "back": { + "default": "عودة", + "short": "عُدْ" + }, + "casting": { + "enabled": "جارٍ العرض على الجهاز..." + }, + "menus": { + "downloads": { + "disclaimer": "يتم أخذ التنزيلات مباشرةً من قبل مقدم الخدمة. sudo-flix لاسيطرة له على كيفية توفير تلك التنزيلات.", + "downloadPlaylist": "تنزيل قائمة التشغيل", + "downloadSubtitle": "تنزيل مقاطع الترجمة الحالية", + "downloadVideo": "تنزيل الفيديو", + "hlsDisclaimer": "يتم أخذ التنزيلات مباشرة من مزود الخدمة. sudo-flix ليس المتحكم في كيفية توفير التنزيلات. يرجى ملاحظة أنك تقوم بتنزيل قائمة تشغيل HLS، وهذا أمر يتطلب ان تكون على دراية بتقنيات متقدمة لبث الوسائط.", + "onAndroid": { + "1": "للتنزيل على أندرويد، أنقر زر التنزيل وفي الصفحة الموالية إضغط باستمرار على الفيديو، وبعدها اختر حفظ.", + "shortTitle": "تنزيل / Android", + "title": "تنزيل على Android" + }, + "onIos": { + "1": "للتنزيل على نظام iOS، انقر على زر التنزيل ثم، على الصفحة الجديدة، انقر على ، ثم حفظ إلى الملفات .", + "shortTitle": "تنزيل / iOS", + "title": "تنزيل على iOS" + }, + "onPc": { + "1": "على الحاسوب، انقر على زر التنزيل، ثم على الصفحة الجديدة، انقر بزر الفأرة الأيمن على الفيديو وحدد حفظ الفيديو باسم", + "shortTitle": "تنزيل / حاسوب", + "title": "تنزيل على الحاسوب" + }, + "title": "تنزيل" + }, + "episodes": { + "button": "الحلقات", + "emptyState": "لا توجد حلقات في هذا الموسم، يرجى التحقق لاحقًا!", + "episodeBadge": "E{{episode}}", + "loadingError": "خطأ في تحميل الموسم", + "loadingList": "تحميل...", + "loadingTitle": "تحميل...", + "unairedEpisodes": "تم تعطيل حلقة واحدة أو أكثر من هذا الموسم لأنه لم يتم بثها بعد." + }, + "playback": { + "speedLabel": "سرعة التشغيل", + "title": "إعدادات التشغيل" + }, + "quality": { + "automaticLabel": "جودة تلقائية", + "hint": "يمكنك محاولة <0>تغيير المصدر للحصول على خيارات جودة مختلفة.", + "iosNoQuality": "نظرًا للقيود المحددة من قبل Apple، خيارات الجودة غير متوفرة على iOS لهذا المصدر. يمكنك محاولة <0>التبديل إلى مصدر آخر للحصول على خيارات جودة مختلفة.", + "title": "جودة" + }, + "settings": { + "downloadItem": "تنزيل", + "enableSubtitles": "تفعيل مقاطع الترجمة", + "experienceSection": "تجربة المشاهدة", + "playbackItem": "إعدادات التشغيل", + "qualityItem": "جودة", + "sourceItem": "مصادر الفيديو", + "subtitleItem": "إعدادات الترجمة", + "videoSection": "إعدادات الفيديو" + }, + "sources": { + "failed": { + "text": "حدثت خطأ أثناء محاولة إيجاد عن أي فيديو، يرجى تجربة مصدر آخر.", + "title": "فشلت عملية الاستخراج" + }, + "noEmbeds": { + "text": "تعذر العثور على أي تضمينات، يرجى تجربة مصدر آخر.", + "title": "لم يتم العثور على تضمينات" + }, + "noStream": { + "text": "هذا المصدر ليس فيه بث لهذا الفلم أو المسلسل.", + "title": "لا بث" + }, + "title": "مصادر", + "unknownOption": "مجهول" + }, + "subtitles": { + "customChoice": "استيراد ترجمة من ملف", + "customizeLabel": "تخصيص", + "offChoice": "تعطيل", + "settings": { + "backlink": "مقاطع ترجمة مخصصة", + "delay": "تأخير مقاطع الترجمة", + "fixCapitals": "تصحيح تهجئة الحروف" + }, + "title": "مقاطع الترجمة", + "unknownLanguage": "مجهول" + } + }, + "metadata": { + "failed": { + "badge": "فشل", + "homeButton": "عُدْ للصفحة الرئيسية", + "text": "تعذر تحميل البيانات الوصفية للوسائط من قاعدة البيانات TMDB. يرجى التحقق مما إذا كانت TMDB غير متاحة أو محظورة على اتصال الإنترنت الخاص بك.", + "title": "فشل في تحميل البيانات الوصفية" + }, + "notFound": { + "badge": "غير موجود", + "homeButton": "عُدْ للصفحة الرئيسية", + "text": "لم نتمكن من العثور على الوسيط الذي طلبته.", + "title": "تعذر إيجاد هذا الوسيط." + } + }, + "nextEpisode": { + "cancel": "إلغاء", + "next": "الحلقة الموالية" + }, + "playbackError": { + "badge": "خطأ في التشغيل", + "errors": { + "errorAborted": "تم إلغاء جلب الوسائط بناءً على طلب المستخدم.", + "errorDecode": "رغم كونها قابلة للتشغيل سابقا، أحد الأخطاء على مستوى فك ترميز الوسائط، أدى إلى فشل عملية التشغيل.", + "errorGenericMedia": "حدث خطأ مجهول متصل بالوسائط.", + "errorNetwork": "أحد الأخطاء المتصلة بالشبكة، تسبب في تعذرِ جلبِ الوسائط، على الرغم من توفرها سابقا.", + "errorNotSupported": "هذا الوسيط أو مصدره غير مدعوم." + }, + "homeButton": "عُدْ للصفحة الرئيسية", + "text": "حدث خطأٌ أثناء محاولة تشغيل الوسائط. رجاءً حاول مرة أخرى.", + "title": "فشِلَ تشغيلُ الفيديو!" + }, + "scraping": { + "items": { + "failure": "حدث خطأ", + "notFound": "لا يحتوي على اي فيديو", + "pending": "جارٍ التحققُ من وجود فيديوهات..." + }, + "notFound": { + "badge": "غير موجود", + "detailsButton": "عرض التفاصيل", + "homeButton": "عُدْ للصفحة الرئيسية", + "text": "بحثنا عن طريقِ مُزودينا ولم نعثر على ما كنتَ تبحثُ عنه! نحن لانستضيف الوسائط ولسنا المتحكمين فيما هو متاح. رجاءً انقر على 'عرض التفاصيل' أسفله لمزيد من المعلومات.", + "title": "لم نتمكن من العثور على ذلك" + } + }, + "time": { + "regular": "{{timeWatched}} / {{duration}}", + "remaining": "باقٍ {{timeLeft}} • سينتهي مع {{timeFinished, datetime}}", + "shortRegular": "{{timeWatched}}", + "shortRemaining": "-{{timeLeft}}" + } + }, + "screens": { + "dmca": { + "text": "مرحبًا بكم في صفحة sudo-flix الخاصة بالتواصل حول قانون الألفية للملكية الرقمية (DMCA) ! نحن نحترم حقوق الملكية الفكرية ونرغب في التعامل بسرعة مع أي مسألة تخص حقوق الطبع والنشر. إن كنت تعتقد أن أيا من أعمالك المحميو بحقوق الطبع والنشر قد تم استخدامها بشكل غير لائق على منصتنا، رجاءً أرسل إشعارا مفصلا إلى البريد الإلكتروني أدناه. يرجى تضمين وصف للمواد المحمية بحقوق الطبع والنشر، وكذا طريقةً للتواصل معك، إضافة إلى تصريح بمصداقية طلبك. نحن ملتزمون بحل هذه القضايا بسرعة ونقدر تعاونكم في الحفاظ على sudo-flix كمكان يحترم الإبداع وحقوق الطبع والنشر.", + "title": "DMCA" + }, + "loadingApp": "جار تحميل التطبيق", + "loadingUser": "جارٍ تحميل ملفك الشخصي", + "loadingUserError": { + "logout": "تسجيل الخروج", + "reset": "إعادة تعيين الخادم المخصص", + "text": "فشل تحميل ملفك الشخصي", + "textWithReset": "فشل تحميل ملفك الشخصي من خادمك المخصص، هل ترغب في العودة إلى الخادم الافتراضي؟" + }, + "migration": { + "failed": "فشلت عملية ترحيل بياناتك.", + "inProgress": "يرجى الانتظار، نقوم بترحيل بياناتك. لن يستغرق ذلك وقتًا طويلاً." + } + }, + "settings": { + "account": { + "accountDetails": { + "deviceNameLabel": "اسم الجهاز", + "deviceNamePlaceholder": "الهاتف الشخصي", + "editProfile": "تعديل", + "logoutButton": "تسجيل الخروج" + }, + "actions": { + "delete": { + "button": "حذف الحساب", + "confirmButton": "حذف الحساب", + "confirmDescription": "هل أنت متأكد أنك تريد حذف حسابك؟ ستفقد جميع بياناتك!", + "confirmTitle": "هل أنت متأكد؟", + "text": "هذا الإجراء لا يمكن التراجع عنه. سيتم حذف جميع البيانات ولا يمكن استعادتها.", + "title": "حذف الحساب" + }, + "title": "الإجراءات" + }, + "devices": { + "deviceNameLabel": "اسم الجهاز", + "failed": "فشل تحميل الجلسات", + "removeDevice": "إزالة", + "title": "الأجهزة" + }, + "profile": { + "finish": "إنهاء التعديل", + "firstColor": "لون الملف الشخصي الأول", + "secondColor": "لون الملف الشخصي الثاني", + "title": "تعديل صورة الملف الشخصي", + "userIcon": "أيقونة المستخدم" + }, + "register": { + "cta": "ابدأ", + "text": "شارك تقدم مشاهدتك بين الأجهزة وحافظ على تزامنها.", + "title": "مزامنة إلى االتخزين لسحابي" + }, + "title": "حساب" + }, + "appearance": { + "activeTheme": "نَشِط", + "themes": { + "blue": "أزرق", + "default": "افتراضي", + "gray": "رمادي", + "red": "أحمر", + "teal": "تركواز" + }, + "title": "المظهر" + }, + "connections": { + "server": { + "description": "إذا كنت ترغب في الاتصال بخادم خلفي مخصص لتخزين بياناتك، قم بتفعيل هذا ووفر الرابط.", + "label": "خادم مُخصص", + "urlLabel": "رابط الخادم المخصص" + }, + "title": "الاتصالات", + "workers": { + "addButton": "إضافة وكيل جديد", + "description": "لتشغيل التطبيق، يتم توجيه كل الاتصالات عبر وكلاء البروكسي. قم بتمكين هذا إذا كنت ترغب في استخدام خوادم العمل الخاصة بك.", + "emptyState": "لا يوجد وكلاء حتى الآن، أضف واحدًا أدناه", + "label": "استخدام وكلاء مُخصصين", + "urlLabel": "روابط الوكلاء", + "urlPlaceholder": "https://" + } + }, + "reset": "إعادة تعيين", + "save": "حفظ", + "sidebar": { + "info": { + "appVersion": "إصدار التطبيق", + "backendUrl": "رابط النهاية الخلفية", + "backendVersion": "إصدار النهاية الخلفية", + "hostname": "اسم المضيف", + "insecure": "غير آمن", + "notLoggedIn": "أنت لم تسجل دخولك بعد", + "secure": "آمن", + "title": "معلومات التطبيق", + "unknownVersion": "غير معروف", + "userId": "معرِّف المستخدم" + } + }, + "subtitles": { + "backgroundLabel": "تعتيم الخلفية", + "colorLabel": "لون", + "previewQuote": "يجب أن لا أخأف. الخوف هو قاتل العقل.", + "textSizeLabel": "حجم النص", + "title": "مقاطع الترجمة" + }, + "unsaved": "لديك تغييرات غير محفوظة" + } +} diff --git a/src/assets/locales/bg.json b/src/assets/locales/bg.json new file mode 100644 index 00000000..643f1484 --- /dev/null +++ b/src/assets/locales/bg.json @@ -0,0 +1,285 @@ +{ + "about": { + "description": "sudo-flix е уеб приложение, което търси в интернет за стриймове. Екипът се стреми към предимно минималистичен подход при консумирането на съдържание.", + "faqTitle": "Общи въпроси", + "q1": { + "body": "sudo-flix не хоства никакво съдържание. Когато кликнете върху нещо, за да го гледате, се търси в интернет избраното медийно съдържание (На екрана за зареждане и в раздела \"Източници на видео\" можете да видите кой източник използвате). Медийното съдържание никога не се качва от sudo-flix, всичко става чрез този механизъм за търсене.", + "title": "От къде идва съдържанието?" + }, + "q2": { + "body": "Невъзможно е да поискате сериал или филм, sudo-flix не управлява никакво съдържание. Всичко се гледа чрез източници в интернет.", + "title": "Къде мога да поискам определен сериал или филм?" + }, + "q3": { + "body": "Резултатите от търсенето ни се поддържат от базата данни за филми (The Movie Database - TMDB) и се показват, независимо дали източниците ни реално разполагат със съдържанието.", + "title": "Резултатите от търсенето показват сериала или филма, защо не мога да го пусна?" + }, + "title": "Относно sudo-flix" + }, + "actions": { + "copied": "Копиране", + "copy": "Копирай" + }, + "auth": { + "createAccount": "Все още нямате акаунт? <0>Създайте акаунт.", + "deviceNameLabel": "Име на устройството", + "deviceNamePlaceholder": "Личен телефон", + "generate": { + "description": "Вашата паролна фраза служи като потребителско име и парола. Уверете се, че я пазите в безопасност, тъй като ще трябва да я въведете, за да влезете в своя акаунт.", + "next": "Запазих паролната си фраза.", + "passphraseFrameLabel": "Паролна фраза", + "title": "Вашата паролна фраза" + }, + "hasAccount": "Вече имате акаунт? <0>Влезте тук.", + "login": { + "description": "Моля, въведете своята паролна фраза, за да влезете в своя акаунт.", + "deviceLengthError": "Моля, въведете името на устройството.", + "passphraseLabel": "12-думена паролна фраза", + "passphrasePlaceholder": "Паролна фраза", + "submit": "Вход", + "title": "Влезте в своя акаунт.", + "validationError": "Некоректна или непълна паролна фраза." + }, + "register": { + "information": { + "color1": "Профилен цвят едно", + "color2": "Профилен цвят две", + "header": "Въведете име за устройството си и изберете цветове и потребителска икона по ваш избор.", + "icon": "Потребителска икона", + "next": "Напред", + "title": "Информация за акаунта" + } + }, + "trust": { + "failed": { + "text": "Конфигурирахте ли го правилно?", + "title": "Неуспешно свързване със сървъра" + }, + "host": "Вие се свързвате към <0>{{hostname}} - моля, потвърдете, че му вярвате, преди да създадете акаунт.", + "no": "Върнете се назад", + "title": "Вярвате ли на този сървър?", + "yes": "Вярвам на този сървър." + }, + "verify": { + "description": "Моля, въведете паролната фраза от по-рано, за да потвърдите, че сте я запазили, и за да създадете своя акаунт.", + "invalidData": "Данните не са валидни.", + "noMatch": "Паролната фраза не съвпада.", + "passphraseLabel": "Вашата 12-думена паролна фраза", + "recaptchaFailed": "Валидацията на ReCaptcha не беше успешна.", + "register": "Създаване на акаунт", + "title": "Потвърдете вашата паролна фраза." + } + }, + "errors": { + "badge": "Счупи се", + "details": "Детайли за грешката", + "reloadPage": "Презаредете страницата.", + "showError": "Покажи детайлите за грешката", + "title": "Сблъскахме се с грешка!" + }, + "footer": { + "legal": { + "disclaimer": "Внимание", + "disclaimerText": "sudo-flix не хоства никакви файлове, а просто предоставя връзки към услуги от трета страна. Правните въпроси следва да се разглеждат с доставчиците на файлове. sudo-flix не носи отговорност за никакви медийни файлове, предоставени от видео доставчици." + }, + "links": { + "discord": "Discord", + "dmca": "DMCA", + "github": "Github" + }, + "tagline": "Гледайте любимите си предавания и филми с това отворено-код стрийминг приложение." + }, + "global": { + "name": "sudo-flix", + "pages": { + "about": "За нас", + "dmca": "DMCA", + "login": "Вход", + "pagetitle": "{{title}} - sudo-flix", + "register": "Регистрация", + "settings": "Настройки" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "Отметки" + }, + "continueWatching": { + "sectionTitle": "Продължи гледането" + }, + "mediaList": { + "stopEditing": "Спри редактирането" + }, + "search": { + "allResults": "Това е всичко, което имаме!", + "failed": "Неуспешно намиране на медия, опитайте отново!", + "loading": "Зареждане...", + "noResults": "Не успяхме да намерим нищо!", + "placeholder": "Какво искате да гледате?", + "sectionTitle": "Резултати от търсенето" + }, + "titles": { + "day": { + "default": "Какво бихте искали да гледате този следобед?", + "extra": [ + "Чувствате ли се авантюристично? \"Джурасик Парк\" може да бъде перфектният избор." + ] + }, + "morning": { + "default": "Какво бихте искали да гледате тази сутрин?", + "extra": ["Чух, че Before Sunrise е добър"] + }, + "night": { + "default": "Какво бихте искали да гледате тази вечер?", + "extra": ["Изморен? Чух, че Екзорсистът е добър."] + } + } + }, + "media": { + "episodeDisplay": "S{{season}} E{{episode}}", + "types": { + "movie": "Филм", + "show": "Сериал" + } + }, + "navigation": { + "banner": { + "offline": "Проверете вашата интернет връзка" + }, + "menu": { + "about": "За нас", + "donation": "Дарете", + "logout": "Излез", + "register": "Синхронизиране с облак", + "settings": "Настройки", + "support": "поддържа" + } + }, + "notFound": { + "badge": "Не е намерено", + "goHome": "Обратно към началото", + "message": "Търсихме навсякъде: под кошчетата, в килера, зад проксито, но в крайна сметка не успяхме да намерим страницата, която търсите.", + "title": "Тази страница не можа да бъде намерена" + }, + "overlays": { + "close": "Затвори" + }, + "player": { + "back": { + "default": "Обратно към началото", + "short": "Назад" + }, + "casting": { + "enabled": "Предава се към устройството..." + }, + "menus": { + "downloads": { + "disclaimer": "Изтеглянията се вземат директно от доставчика. sudo-flix няма контрол върху това как се предоставят изтеглянията.", + "downloadPlaylist": "Изтегляне на плейлист", + "downloadSubtitle": "Изтеглете текущите субтитри", + "downloadVideo": "Изтегляне на видео", + "hlsDisclaimer": "Изтеглянията се вземат директно от доставчика. sudo-flix няма контрол върху това как се предоставят изтеглянията. Моля, имайте предвид, че изтегляте HLS плейлист, това е предназначено за потребители, запознати с усъвършенствано мултимедийно поточно предаване.", + "onAndroid": { + "1": "За да изтеглите на Android, щракнете върху бутона за изтегляне, след което на новата страница докоснете и задръжте видеоклипа, след което изберете запазване.", + "shortTitle": "Изтегляне / Android", + "title": "Изтегляне на Android" + }, + "onIos": { + "1": "За да изтеглите на iOS, щракнете върху бутона за изтегляне, след което на новата страница щракнете върху , след което върху Запазване във файлове .", + "shortTitle": "Изтегляне / iOS", + "title": "Изтегляне на iOS" + }, + "onPc": { + "1": "На компютър щракнете върху бутона за изтегляне, след което на новата страница щракнете с десния бутон върху видеоклипа и изберете Запазване на видеоклипа като", + "shortTitle": "Изтегляне / компютър", + "title": "Изтегляне на компютър" + }, + "title": "Изтегли" + }, + "episodes": { + "button": "епизоди", + "emptyState": "Няма епизоди в този сезон, проверете отново по-късно!", + "episodeBadge": "E{{episode}}", + "loadingError": "Грешка при зареждането на сезона", + "loadingList": "Зареждане...", + "loadingTitle": "Зареждане..." + }, + "playback": { + "speedLabel": "Скорост на възпроизвеждане", + "title": "Настройки за възпроизвеждане" + }, + "quality": { + "automaticLabel": "Автоматично качество", + "hint": "Можете да опитате <0>да превключите източника, за да получите различни опции за качество.", + "iosNoQuality": "Поради ограниченията, определени от Apple, изборът на качество не е наличен в iOS за този източник. Можете да опитате <0>да превключите към друг източник, за да получите различни опции за качество.", + "title": "качество" + }, + "settings": { + "downloadItem": "Изтегли", + "enableSubtitles": "включи субтитрите", + "experienceSection": "Изживяване при гледане", + "playbackItem": "Настройки за възпроизвеждане", + "qualityItem": "качество", + "sourceItem": "Видео източници", + "subtitleItem": "Настройки на субтитрите", + "videoSection": "Видео настройки" + }, + "sources": { + "failed": { + "text": "Възникна грешка при опит за намиране на видеоклипове, моля, опитайте с друг източник.", + "title": "Неуспешно изстъргване" + }, + "noEmbeds": { + "text": "Не можахме да намерим никакви вграждания, моля, опитайте с друг източник.", + "title": "Няма намерени вграждания" + }, + "noStream": { + "text": "Този източник няма потоци за този филм или шоу.", + "title": "Няма поток" + }, + "title": "Източници", + "unknownOption": "неизвестен" + }, + "subtitles": { + "customChoice": "Качете субтитри", + "customizeLabel": "Персонализиране", + "offChoice": "изключи", + "settings": { + "backlink": "Персонализирани субтитри", + "delay": "Забавяне на субтитрите", + "fixCapitals": "Коригиране на главни букви" + }, + "title": "субтитри", + "unknownLanguage": "неизвестен" + } + }, + "metadata": { + "failed": { + "badge": "Провал", + "homeButton": "Обратно към началото", + "text": "Неуспешно зареждане на метаданните на носителя от TMDB. Моля, проверете дали TMDB не работи или е блокиран във вашата интернет връзка.", + "title": "Неуспешно зареждане на метаданните" + }, + "notFound": { + "badge": "Не е намерено", + "homeButton": "Обратно към началото", + "text": "Не успяхме да намерим медията, която поискахте. Или е бил премахнат, или сте променили URL адреса.", + "title": "Тази медия не можа да бъде намерена." + } + }, + "nextEpisode": { + "cancel": "Отказ", + "next": "Следващ епизод" + }, + "playbackError": { + "badge": "Грешка при възпроизвеждане", + "errors": { + "errorAborted": "Извличането на медията беше прекратено по искане на потребителя.", + "errorDecode": "Въпреки че преди това беше определено като използваем, възникна грешка при опит за декодиране на медийния ресурс, което доведе до грешка.", + "errorGenericMedia": "Възникна неизвестна медийна грешка.", + "errorNetwork": "Възникна някакъв вид мрежова грешка, която попречи на медията да бъде успешно извлечена, въпреки че преди това е била достъпна.", + "errorNotSupported": "Обектът медия или доставчик на медия не се поддържа." + } + } + } +} diff --git a/src/assets/locales/bn.json b/src/assets/locales/bn.json new file mode 100644 index 00000000..987da91f --- /dev/null +++ b/src/assets/locales/bn.json @@ -0,0 +1,279 @@ +{ + "about": { + "description": "মুভি-ওয়েব একটি ওয়েব অ্যাপ্লিকেশন যা স্ট্রিমগুলির জন্য ইন্টারনেট অনুসন্ধান করে। দলটির লক্ষ্য বিষয়বস্তু গ্রহণের জন্য সবচেয়ে সংক্ষিপ্ত পদ্ধতির জন্য।", + "faqTitle": "সাধারণ প্রশ্নাবলী", + "q1": { + "body": "মুভি-ওয়েব কোনো বিষয়বস্তু হোস্ট করে না। আপনি যখন দেখার জন্য কিছুতে ক্লিক করেন, তখন নির্বাচিত মিডিয়ার জন্য ইন্টারনেট অনুসন্ধান করা হয় (লোডিং স্ক্রিনে এবং 'ভিডিও উত্স' ট্যাবে আপনি কোন উত্সটি ব্যবহার করছেন তা দেখতে পারেন)। মিডিয়া কখনই মুভি-ওয়েব দ্বারা আপলোড হয় না, সবকিছু এই অনুসন্ধান প্রক্রিয়ার মাধ্যমে হয়।", + "title": "কন্টেন্ট কোথা থেকে আসে?" + }, + "q2": { + "body": "একটি শো বা সিনেমার অনুরোধ করা সম্ভব নয়, মুভি-ওয়েব কোনো বিষয়বস্তু পরিচালনা করে না। সমস্ত বিষয়বস্তু ইন্টারনেটে উৎসের মাধ্যমে দেখা হয়।", + "title": "আমি কোথায় একটি শো বা সিনেমা অনুরোধ করতে পারি?" + }, + "q3": { + "body": "আমাদের অনুসন্ধানের ফলাফলগুলি The Movie Database (TMDB) দ্বারা চালিত হয় এবং আমাদের উত্সগুলিতে প্রকৃতপক্ষে সামগ্রী আছে কিনা তা নির্বিশেষে প্রদর্শন করা হয়।", + "title": "সার্চ রেজাল্টে শো বা মুভি দেখায়, কেন আমি এটা চালাতে পারি না?" + }, + "title": "মুভি-ওয়েব সম্পর্কে" + }, + "actions": { + "copied": "অনুলিপি করা", + "copy": "অনুলিপি" + }, + "auth": { + "createAccount": "কোনো একাউন্ট এখনও আছে না? <0>একটি অ্যাকাউন্ট তৈরি করুন৷৷", + "deviceNameLabel": "ডিভাইসের নাম", + "deviceNamePlaceholder": "ব্যক্তিগত ফোন", + "generate": { + "description": "আপনার পাসফ্রেজ আপনার ব্যবহারকারীর নাম এবং পাসওয়ার্ড হিসাবে কাজ করে। আপনার অ্যাকাউন্টে লগইন করার জন্য আপনাকে এটি প্রবেশ করতে হবে বলে এটিকে সুরক্ষিত রাখা নিশ্চিত করুন৷", + "next": "আমি আমার পাসফ্রেজ সংরক্ষণ করেছি", + "passphraseFrameLabel": "পাসফ্রেজ", + "title": "আপনার পাসফ্রেজ" + }, + "hasAccount": "ইতিমধ্যে একটি সদস্যপদ আছে? <0>এখানে লগইন করুন।", + "login": { + "description": "আপনার অ্যাকাউন্টে লগইন করতে আপনার পাসফ্রেজ লিখুন", + "deviceLengthError": "অনুগ্রহ করে একটি ডিভাইসের নাম লিখুন৷", + "passphraseLabel": "12-শব্দ পাসফ্রেজ", + "passphrasePlaceholder": "পাসফ্রেজ", + "submit": "প্রবেশ করুন", + "title": "আপনার অ্যাকাউন্টে লগ ইন করুন", + "validationError": "ভুল বা অসম্পূর্ণ পাসফ্রেজ" + }, + "register": { + "information": { + "color1": "প্রোফাইল রঙ এক", + "color2": "প্রোফাইল রঙ দুই", + "header": "আপনার ডিভাইসের জন্য একটি নাম লিখুন এবং রং এবং আপনার পছন্দের একটি ব্যবহারকারী আইকন বাছুন", + "icon": "ব্যবহারকারী আইকন", + "next": "পরবর্তী", + "title": "হিসাবের তথ্য" + } + }, + "trust": { + "failed": { + "text": "আপনি এটি সঠিকভাবে কনফিগার করেছেন?", + "title": "সার্ভারে পৌঁছাতে ব্যর্থ হয়েছে" + }, + "host": "আপনি <0>{{hostname}}-এর সাথে সংযোগ করছেন - একটি অ্যাকাউন্ট করার আগে দয়া করে নিশ্চিত করুন যে আপনি এটি বিশ্বাস করেন", + "no": "ফিরে যাও", + "title": "আপনি এই সার্ভার বিশ্বাস করেন?", + "yes": "আমি এই সার্ভার বিশ্বাস" + }, + "verify": { + "description": "আপনি এটি সংরক্ষণ করেছেন তা নিশ্চিত করতে এবং আপনার অ্যাকাউন্ট তৈরি করতে অনুগ্রহ করে আগে থেকে আপনার পাসফ্রেজ লিখুন", + "invalidData": "ডেটা বৈধ নয়", + "noMatch": "পাসফ্রেজ মেলে না", + "passphraseLabel": "আপনার 12-শব্দের পাসফ্রেজ", + "recaptchaFailed": "রিক্যাপচা যাচাইকরণ ব্যর্থ হয়েছে", + "register": "হিসাব তৈরি কর", + "title": "আপনার পাসফ্রেজ নিশ্চিত করুন" + } + }, + "errors": { + "badge": "এটা ভাঙ্গা", + "details": "ভুল তথ্য", + "reloadPage": "পৃষ্ঠাটি পুনরায় লোড করুন", + "showError": "ত্রুটি বিবরণ দেখান", + "title": "আমরা একটি ত্রুটির সম্মুখীন হয়েছি!" + }, + "footer": { + "legal": { + "disclaimer": "দাবিত্যাগ", + "disclaimerText": "মুভি-ওয়েব কোনো ফাইল হোস্ট করে না, এটি শুধুমাত্র তৃতীয় পক্ষের পরিষেবাগুলির সাথে লিঙ্ক করে। ফাইল হোস্ট এবং প্রদানকারীদের সাথে আইনি সমস্যাগুলি নেওয়া উচিত। মুভি-ওয়েব ভিডিও প্রদানকারীদের দ্বারা দেখানো কোনো মিডিয়া ফাইলের জন্য দায়ী নয়।" + }, + "links": { + "discord": "বিরোধ", + "dmca": "ডিএমসিএ", + "github": "গিটহাব" + }, + "tagline": "এই ওপেন সোর্স স্ট্রিমিং অ্যাপের মাধ্যমে আপনার প্রিয় শো এবং সিনেমা দেখুন।" + }, + "global": { + "name": "মুভি-ওয়েব", + "pages": { + "about": "সম্পর্কিত", + "dmca": "ডিএমসিএ", + "login": "প্রবেশ করুন", + "pagetitle": "{{title}} - মুভি-ওয়েব", + "register": "নিবন্ধন", + "settings": "সেটিংস" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "বুকমার্ক" + }, + "continueWatching": { + "sectionTitle": "দেখা চালিয়ে যান" + }, + "mediaList": { + "stopEditing": "সম্পাদনা বন্ধ করুন" + }, + "search": { + "allResults": "যে আমরা সব আছে!", + "failed": "মিডিয়া খুঁজে পেতে ব্যর্থ, আবার চেষ্টা করুন!", + "loading": "লোড হচ্ছে..।", + "noResults": "আমরা কিছুই খুঁজে পাইনি!", + "placeholder": "আপনি কি দেখতে চান?", + "sectionTitle": "অনুসন্ধান ফলাফল" + }, + "titles": { + "day": { + "default": "আপনি এই বিকেলে কি দেখতে চান?", + "extra": ["দুঃসাহসিক বোধ করছেন? জুরাসিক পার্ক নিখুঁত পছন্দ হতে পারে।"] + }, + "morning": { + "default": "আপনি এই সকালে কি দেখতে চান?", + "extra": ["শুনি সূর্যোদয়ের আগে ভালো"] + }, + "night": { + "default": "আপনি আজ রাতে কি দেখতে চান?", + "extra": ["ক্লান্ত? আমি শুনেছি দ্য এক্সরসিস্ট ভাল।"] + } + } + }, + "media": { + "episodeDisplay": "সিজন{{সিজন}} পর্ব{{পর্ব}}", + "types": { + "movie": "সিনেমা", + "show": "দেখান" + } + }, + "navigation": { + "banner": { + "offline": "আপনার ইন্টারনেট সংযোগ পরীক্ষা করুন" + }, + "menu": { + "about": "আমাদের সম্পর্কে", + "donation": "দান করুন", + "logout": "প্রস্থান", + "register": "ক্লাউডে সিঙ্ক করুন", + "settings": "সেটিংস", + "support": "সমর্থন" + } + }, + "notFound": { + "badge": "পাওয়া যায়নি", + "goHome": "বাড়িতে ফিরে যাও", + "message": "আমরা সর্বত্র তাকালাম: বিনের নীচে, পায়খানায়, প্রক্সির পিছনে কিন্তু শেষ পর্যন্ত আপনি যে পৃষ্ঠাটি খুঁজছেন তা খুঁজে পাইনি।", + "title": "সেই পৃষ্ঠাটি খুঁজে পাওয়া যায়নি" + }, + "overlays": { + "close": "বন্ধ" + }, + "player": { + "back": { + "default": "বাড়িতে ফিরে যাও", + "short": "পেছনে" + }, + "casting": { + "enabled": "ডিভাইসে কাস্ট করা হচ্ছে..।" + }, + "menus": { + "downloads": { + "disclaimer": "ডাউনলোড সরাসরি প্রদানকারী থেকে নেওয়া হয়. কিভাবে ডাউনলোড দেওয়া হয় তার উপর মুভি-ওয়েবের নিয়ন্ত্রণ নেই।", + "downloadPlaylist": "প্লেলিস্ট ডাউনলোড করুন", + "downloadSubtitle": "বর্তমান সাবটাইটেল ডাউনলোড করুন", + "downloadVideo": "ভিডিও ডাউনলোড", + "hlsDisclaimer": "ডাউনলোড সরাসরি প্রদানকারী থেকে নেওয়া হয়. কিভাবে ডাউনলোড দেওয়া হয় তার উপর মুভি-ওয়েবের নিয়ন্ত্রণ নেই। অনুগ্রহ করে মনে রাখবেন যে আপনি একটি HLS প্লেলিস্ট ডাউনলোড করছেন, এটি উন্নত মাল্টিমিডিয়া স্ট্রিমিংয়ের সাথে পরিচিত ব্যবহারকারীদের জন্য।", + "onAndroid": { + "1": "অ্যান্ড্রয়েডে ডাউনলোড করতে, ডাউনলোড বোতামে ক্লিক করুন তারপর, নতুন পৃষ্ঠায়, ভিডিওতে ট্যাপ করুন এবং ধরে রাখুন, তারপরে সংরক্ষণ করুন নির্বাচন করুন।", + "shortTitle": "ডাউনলোড/অ্যান্ড্রয়েড", + "title": "অ্যান্ড্রয়েডে ডাউনলোড হচ্ছে" + }, + "onIos": { + "1": "iOS-এ ডাউনলোড করতে, ডাউনলোড বোতামে ক্লিক করুন তারপর, নতুন পৃষ্ঠায়, -এ ক্লিক করুন, তারপর ফাইলে সংরক্ষণ করুন ।", + "shortTitle": "ডাউনলোড / iOS", + "title": "iOS এ ডাউনলোড হচ্ছে" + }, + "onPc": { + "1": "পিসিতে, ডাউনলোড বোতামে ক্লিক করুন তারপর, নতুন পৃষ্ঠায়, ভিডিওটিতে ডান ক্লিক করুন এবং ভিডিওটিকে এই হিসাবে সংরক্ষণ করুন নির্বাচন করুন", + "shortTitle": "ডাউনলোড/পিসি", + "title": "পিসিতে ডাউনলোড হচ্ছে" + }, + "title": "ডাউনলোড করুন" + }, + "episodes": { + "button": "পর্বগুলি", + "emptyState": "এই মরসুমে কোন পর্ব নেই, পরে আবার চেক করুন!", + "episodeBadge": "E{{episode}}", + "loadingError": "ঋতু লোড করার সময় ত্রুটি৷", + "loadingList": "লোড হচ্ছে..।", + "loadingTitle": "লোড হচ্ছে..।", + "unairedEpisodes": "এই সিজনের এক বা একাধিক পর্ব অক্ষম করা হয়েছে কারণ সেগুলি এখনও সম্প্রচার করা হয়নি।" + }, + "playback": { + "speedLabel": "প্লেব্যাক গতি", + "title": "প্লেব্যাক সেটিংস" + }, + "quality": { + "automaticLabel": "স্বয়ংক্রিয় গুণমান", + "hint": "আপনি বিভিন্ন গুণমানের বিকল্প পেতে <0>উৎস পরিবর্তন করে দেখতে পারেন।", + "iosNoQuality": "অ্যাপল-সংজ্ঞায়িত সীমাবদ্ধতার কারণে, এই উৎসের জন্য গুণমান নির্বাচন iOS-এ উপলব্ধ নয়। বিভিন্ন মানের বিকল্প পেতে আপনি <0>অন্য উৎসে স্যুইচ করার চেষ্টা করতে পারেন।", + "title": "গুণমান" + }, + "settings": { + "downloadItem": "ডাউনলোড করুন", + "enableSubtitles": "সাবটাইটেল সক্রিয় করুন", + "experienceSection": "দেখার অভিজ্ঞতা", + "playbackItem": "প্লেব্যাক সেটিংস", + "qualityItem": "গুণমান", + "sourceItem": "ভিডিও সূত্র", + "subtitleItem": "সাবটাইটেল সক্রিয় করুন", + "videoSection": "ভিডিও সেটিংস" + }, + "sources": { + "failed": { + "text": "কোনো ভিডিও খুঁজে বের করার চেষ্টা করার সময় একটি ত্রুটি ছিল, অনুগ্রহ করে একটি ভিন্ন উত্স চেষ্টা করুন।", + "title": "স্ক্র্যাপ করতে ব্যর্থ" + }, + "noEmbeds": { + "text": "আমরা কোনো এম্বেড খুঁজে পেতে অক্ষম, একটি ভিন্ন উৎস চেষ্টা করুন।", + "title": "কোনো এম্বেড পাওয়া যায়নি" + }, + "noStream": { + "text": "এই উৎসের এই সিনেমা বা শোর জন্য কোনো স্ট্রিম নেই।", + "title": "অজানা" + }, + "title": "সূত্র", + "unknownOption": "অজানা" + }, + "subtitles": { + "customChoice": "ফাইল থেকে সাবটাইটেল নির্বাচন করুন", + "customizeLabel": "কাস্টমাইজ করুন", + "offChoice": "বন্ধ", + "settings": { + "backlink": "কাস্টম সাবটাইটেল", + "delay": "সাবটাইটেল বিলম্ব", + "fixCapitals": "মূলধন ঠিক করুন" + }, + "title": "সাবটাইটেল", + "unknownLanguage": "অজানা" + } + }, + "metadata": { + "api": { + "text": "API মেটাডেটা লোড করা যায়নি, অনুগ্রহ করে আপনার ইন্টারনেট সংযোগ পরীক্ষা করুন।", + "title": "API মেটাডেটা লোড করতে ব্যর্থ হয়েছে" + }, + "failed": { + "badge": "ব্যর্থ", + "homeButton": "বাড়িতে যেতে", + "text": "TMDB থেকে মিডিয়ার মেটাডেটা লোড করা যায়নি। আপনার ইন্টারনেট সংযোগে TMDB ডাউন বা ব্লক করা আছে কিনা তা অনুগ্রহ করে চেক করুন।", + "title": "মেটাডেটা লোড করতে ব্যর্থ হয়েছে" + }, + "notFound": { + "badge": "পাওয়া যায়নি", + "homeButton": "বাড়িতে ফিরে যাও", + "text": "আপনার অনুরোধ করা মিডিয়া আমরা খুঁজে পাইনি। হয় এটি সরানো হয়েছে অথবা আপনি URL-এর সাথে হেরফের করেছেন।" + } + }, + "turnstile": { + "description": "ডানদিকে ক্যাপচা সম্পূর্ণ করে আপনি যে মানুষ তা যাচাই করুন। সিনেমা-ওয়েবকে নিরাপদ রাখতেই এই!", + "error": "আপনার মানবতা যাচাই করতে ব্যর্থ হয়েছে. অনুগ্রহপূর্বক আবার চেষ্টা করুন।", + "title": "আপনি যে মানুষ তা আমাদের যাচাই করতে হবে।", + "verifyingHumanity": "আপনার মানবতা যাচাই করা হচ্ছে..।" + } + } +} diff --git a/src/assets/locales/ca.json b/src/assets/locales/ca.json new file mode 100644 index 00000000..729bf083 --- /dev/null +++ b/src/assets/locales/ca.json @@ -0,0 +1,428 @@ +{ + "about": { + "description": "sudo-flix és una aplicació web que cerca fluxos a internet. L'equip té com a objectiu un enfocament majoritàriament minimalista del consum de contingut.", + "faqTitle": "Preguntes freqüents", + "q1": { + "body": "sudo-flix no allotja cap contingut. Quan feu clic a alguna cosa per a mirar-la, es busca a Internet el contingut seleccionat (a la pantalla de càrrega i a la pestanya «Fonts de vídeo» podeu veure quina font utilitzeu). sudo-flix mai hi puja contingut, tot és a través d'aquest mecanisme de cerca.", + "title": "D'on prové el contingut?" + }, + "q2": { + "body": "No és possible sol·licitar un programa o una pel·lícula, sudo-flix no gestiona cap contingut. Tot el contingut es visualitza a través de fonts a internet.", + "title": "On puc sol·licitar un programa o una pel·lícula?" + }, + "q3": { + "body": "Els resultats de cerca funcionen amb The Movie Database (TMDB) i es mostren independentment de si les nostres fonts realment tenen el contingut.", + "title": "Els resultats de la cerca mostren el programa o la pel·lícula, per què no puc reproduir-lo?" + }, + "title": "Sobre sudo-flix" + }, + "actions": { + "copied": "S'ha copiat", + "copy": "Copia" + }, + "auth": { + "createAccount": "Encara no teniu un compte? <0>Creeu un compte.", + "deviceNameLabel": "Nom del dispositiu", + "deviceNamePlaceholder": "Telèfon personal", + "generate": { + "description": "La frase de contrasenya actua com a nom d'usuari i contrasenya. Assegureu-vos de mantenir-la segura, ja que haureu d'introduir-la per a iniciar la sessió al vostre compte", + "next": "He desat la frase de contrasenya", + "passphraseFrameLabel": "Frase de contrasenya", + "title": "La vostra frase de contrasenya" + }, + "hasAccount": "Ja teniu un compte? <0>Inicieu sessió aquí.", + "login": { + "description": "Introduïu la vostra frase de contrasenya per a iniciar sessió al vostre compte", + "deviceLengthError": "Introduïu un nom per al dispositiu", + "passphraseLabel": "Frase de contrasenya de 12 paraules", + "passphrasePlaceholder": "Frase de contrasenya", + "submit": "Inicia sessió", + "title": "Inicieu sessió al vostre compte", + "validationError": "Frase de contrasenya incorrecta o incompleta" + }, + "register": { + "information": { + "color1": "Color de perfil 1", + "color2": "Color de perfil 2", + "header": "Introduïu un nom per al dispositiu i trieu els colors i la icona d'usuari que vulgueu", + "icon": "Icona d'usuari", + "next": "Següent", + "title": "Informació del compte" + } + }, + "trust": { + "failed": { + "text": "L'heu configurada correctament?", + "title": "No s'ha pogut accedir al servidor" + }, + "host": "Us esteu connectant a <0>{{hostname}}. Confirmeu que hi confieu abans de crear un compte", + "no": "Torna", + "title": "Confieu en aquest servidor?", + "yes": "Confie en aquest servidor" + }, + "verify": { + "description": "Introduïu la vostra frase de contrasenya anterior per a confirmar que l'heu desat, i crear el compte", + "invalidData": "La data no és vàlida", + "noMatch": "La frase de contrasenya no coincideix", + "passphraseLabel": "Frase de contrasenya de 12 paraules", + "recaptchaFailed": "Ha fallat la validació de ReCaptcha", + "register": "Crea el compte", + "title": "Confirmeu la frase de contrasenya" + } + }, + "errors": { + "badge": "S'ha trencat", + "details": "Detalls de l'error", + "reloadPage": "Recarrega la pàgina", + "showError": "Mostra els detalls de l'error", + "title": "Hem trobat un error!" + }, + "footer": { + "legal": { + "disclaimer": "Avís d'exempció de responsabilitat", + "disclaimerText": "sudo-flix no allotja cap fitxer, només enllaça a serveis de tercers. Els problemes legals s'han d'abordar amb qui allotja i els proveïdors de fitxers. sudo-flix no es fa responsable del contingut mostrat pels proveïdors de vídeo." + }, + "links": { + "discord": "Discord", + "dmca": "DMCA", + "github": "GitHub" + }, + "tagline": "Mireu els vostres programes i pel·lícules preferits amb aquesta aplicació de codi obert de reproducció en temps real." + }, + "global": { + "name": "sudo-flix", + "pages": { + "about": "Quant a", + "dmca": "DMCA", + "login": "Inicia sessió", + "pagetitle": "{{title}} - sudo-flix", + "register": "Registra", + "settings": "Configuració" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "Marcadors" + }, + "continueWatching": { + "sectionTitle": "Continueu mirant" + }, + "mediaList": { + "stopEditing": "Deixa d'editar" + }, + "search": { + "allResults": "Això és tot el que tenim!", + "failed": "No s'ha pogut trobar cap contingut, torneu-ho a provar!", + "loading": "S'està carregant…", + "noResults": "No hem pogut trobar res!", + "placeholder": "Què voleu mirar?", + "sectionTitle": "Resultats de la cerca" + }, + "titles": { + "day": { + "default": "Què us agradaria mirar aquesta vesprada/tarda?", + "extra": [ + "Voleu aventura? Jurassic Park podria ser l'elecció perfecta." + ] + }, + "morning": { + "default": "Què us agradaria mirar aquest matí?", + "extra": ["He sentit que «Abans de l'alba» és bona"] + }, + "night": { + "default": "Què us agradaria mirar aquesta nit?", + "extra": ["Esteu cansat? He sentit que «L'exorcista» és bona."] + } + } + }, + "media": { + "episodeDisplay": "T{{season}} E{{episode}}", + "types": { + "movie": "Pel·lícula", + "show": "Sèrie/Programa" + } + }, + "navigation": { + "banner": { + "offline": "Comproveu la connexió a internet" + }, + "menu": { + "about": "Quant a nosaltres", + "donation": "Feu una donació", + "logout": "Tanca la sessió", + "register": "Sincronitza al núvol", + "settings": "Configuració", + "support": "Ajuda" + } + }, + "notFound": { + "badge": "No s'ha trobat", + "goHome": "Torna a l'inici", + "message": "Hem mirat per tot arreu: davall de les papereres, a l'armari, darrere del servidor intermediari, però al remat no hem pogut trobar la pàgina que busqueu.", + "title": "No s'ha pogut trobar la pàgina" + }, + "overlays": { + "close": "Tanca" + }, + "player": { + "back": { + "default": "Torna a l'inici", + "short": "Torna" + }, + "casting": { + "enabled": "S'està emetent al dispositiu…" + }, + "menus": { + "downloads": { + "disclaimer": "Les baixades s'obtenen directament del proveïdor. sudo-flix no té control sobre com es proporcionen les baixades.", + "downloadPlaylist": "Baixa la llista de reproducció", + "downloadSubtitle": "Baixa els subtítols actuals", + "downloadVideo": "Baixa el vídeo", + "hlsDisclaimer": "Les baixades s'obtenen directament del proveïdor. sudo-flix no té control sobre com es proporcionen les baixades. Tingueu en compte que esteu baixant una llista de reproducció HLS, destinada als usuaris familiaritzats amb la transmissió multimèdia avançada.", + "onAndroid": { + "1": "Per a baixar-lo a Android, feu clic al botó de baixada i, a la pàgina nova, manteniu premut el vídeo i, a continuació, seleccioneu Desa.", + "shortTitle": "Baixa / Android", + "title": "Baixada a Android" + }, + "onIos": { + "1": "Per a baixar a iOS, feu clic al botó de baixada i, a la pàgina nova, feu clic a /> i, a continuació, Desa als Arxius .", + "shortTitle": "Baixa / iOS", + "title": "Baixada a iOS" + }, + "onPc": { + "1": "En un PC, feu clic al botó de baixada i, a la pàgina nova, feu clic amb el botó dret al vídeo i seleccioneu Anomena i desa el vídeo", + "shortTitle": "Baixa / PC", + "title": "Baixada a un PC" + }, + "title": "Baixa" + }, + "episodes": { + "button": "Episodi", + "emptyState": "No hi ha episodis en aquesta temporada, torneu-ho a comprovar més tard!", + "episodeBadge": "E{{episode}}", + "loadingError": "Error en carregar la temporada", + "loadingList": "S'està carregant…", + "loadingTitle": "S'està carregant…", + "unairedEpisodes": "Un o més episodis d'aquesta temporada s'han desactivat perquè encara no s'han emés." + }, + "playback": { + "speedLabel": "Velocitat de la reproducció", + "title": "Configuració de la reproducció" + }, + "quality": { + "automaticLabel": "Qualitat automàtica", + "hint": "Podeu provar a <0>canviar la font per a obtenir diferents opcions de qualitat.", + "iosNoQuality": "A causa de les limitacions definides per Apple, la selecció de qualitat no està disponible a iOS per a aquesta font. Podeu provar a <0>canviar a una altra font per a obtenir diferents opcions de qualitat.", + "title": "Qualitat" + }, + "settings": { + "downloadItem": "Baixa", + "enableSubtitles": "Activa els subtítols", + "experienceSection": "Experiència de visualització", + "playbackItem": "Configuració de la reproducció", + "qualityItem": "Qualitat", + "sourceItem": "Fonts de vídeo", + "subtitleItem": "Configuració dels subtítols", + "videoSection": "Configuració de vídeo" + }, + "sources": { + "failed": { + "text": "S'ha produït un error en intentar trobar vídeos, proveu una font diferent.", + "title": "No s'ha pogut obtenir" + }, + "noEmbeds": { + "text": "No hem pogut trobar cap incrustat, proveu una font diferent.", + "title": "No s'ha trobat cap incrustació" + }, + "noStream": { + "text": "Aquesta font no té fluxos per a aquesta pel·lícula o programa.", + "title": "Cap flux" + }, + "title": "Fonts", + "unknownOption": "Desconeguda" + }, + "subtitles": { + "customChoice": "Selecciona un fitxer de subtítols", + "customizeLabel": "Personalitza", + "offChoice": "Desactivats", + "settings": { + "backlink": "Subtítols personalitzats", + "delay": "Retard dels subtítols", + "fixCapitals": "Corregeix les majúscules/minúscules" + }, + "title": "Subtítols", + "unknownLanguage": "Desconeguda" + } + }, + "metadata": { + "api": { + "text": "No s'han pogut carregar les metadades de l'API, comproveu la connexió a Internet.", + "title": "No s'han pogut carregar les metadades de l'API" + }, + "failed": { + "badge": "Ha fallat", + "homeButton": "Vés a l'inici", + "text": "No s'han pogut carregar les metadades del contingut des de TMDB. Comproveu si TMDB no funciona o està bloquejat a la vostra connexió a Internet.", + "title": "Ha fallat la càrrega de les metadades" + }, + "notFound": { + "badge": "No s'ha trobat", + "homeButton": "Torna a l'inici", + "text": "No hem pogut trobar el contingut sol·licitat. O bé s'ha eliminat o bé heu alterat l'URL.", + "title": "No s'ha trobat el contingut." + } + }, + "nextEpisode": { + "cancel": "Cancel·la", + "next": "Episodi següent" + }, + "playbackError": { + "badge": "Error en la reproducció", + "errors": { + "errorAborted": "S'ha interromput l'obtenció del contingut per petició de l'usuari.", + "errorDecode": "Tot i haver-se determinat prèviament que era utilitzable, s'ha produït un error en intentar descodificar el recurs multimèdia.", + "errorGenericMedia": "S'ha produït un error desconegut al contingut.", + "errorNetwork": "S'ha produït algun tipus d'error de xarxa que ha impedit que el contingut s'obtinga correctament, tot i haver estat disponibles prèviament.", + "errorNotSupported": "El contingut o el proveïdor del contingut no és compatible." + }, + "homeButton": "Torna a l'inici", + "text": "S'ha produït un error en intentar reproduir el contingut. Torneu-ho a provar.", + "title": "No s'ha pogut reproduir el vídeo!" + }, + "scraping": { + "items": { + "failure": "S'ha produït un error", + "notFound": "No té el vídeo", + "pending": "S'estan cercant vídeos…" + }, + "notFound": { + "badge": "No s'ha trobat", + "detailsButton": "Mostra els detalls", + "homeButton": "Torna a l'inici", + "text": "Hem buscat a través dels nostres proveïdors i no trobem el contingut que busqueu! No allotgem contingut i no tenim control sobre què hi ha disponible. Feu clic a «Mostra els detalls» a continuació per a més informació.", + "title": "No s'ha pogut trobar" + } + }, + "time": { + "regular": "{{timeWatched}} / {{duration}}", + "remaining": "{{timeLeft}} restants • Acaba a les {{timeFinished, datetime}}", + "shortRegular": "{{timeWatched}}", + "shortRemaining": "-{{timeLeft}}" + }, + "turnstile": { + "description": "Verifiqueu que sou humà completant el Captcha de la dreta. Ho fem per a mantenir segura sudo-flix!", + "error": "No s'ha pogut verificar la humanitat. Torneu-ho a provar.", + "title": "Necessitem verificar que sou humà.", + "verifyingHumanity": "Verificant la vostra humanitat…" + } + }, + "screens": { + "dmca": { + "text": "Us donem la benvinguda a la pàgina de contacte DMCA de sudo-flix! Respectem els drets de propietat intel·lectual i volem resoldre qualsevol problema de drets d'autor ràpidament. Si creieu que la vostra obra protegida per drets d'autor s'ha utilitzat incorrectament a la nostra plataforma, envieu un avís detallat de la DMCA al correu electrònic següent. Incloeu una descripció del material protegit per drets d'autor, les vostres dades de contacte i una declaració de creença de bona fe. Ens comprometem a resoldre aquests assumptes amb agilitat i agraïm la vostra col·laboració per a mantenir sudo-flix en un lloc que respecta la creativitat i els drets d'autor.", + "title": "DMCA" + }, + "loadingApp": "S'està carregant l'aplicació", + "loadingUser": "S'està carregant el perfil", + "loadingUserError": { + "logout": "Tanca la sessió", + "reset": "Restableix el servidor personalitzat", + "text": "Ha fallat la càrrega del perfil", + "textWithReset": "Error en carregar el vostre perfil des del servidor personalitzat, voleu restablir el servidor per defecte?" + }, + "migration": { + "failed": "La migració de les dades ha fallat.", + "inProgress": "Espereu, estem migrant les vostres dades. No hauria de tardar massa." + } + }, + "settings": { + "account": { + "accountDetails": { + "deviceNameLabel": "Nom del dispositiu", + "deviceNamePlaceholder": "Telèfon personal", + "editProfile": "Edita", + "logoutButton": "Tanca la sessió" + }, + "actions": { + "delete": { + "button": "Elimina el compte", + "confirmButton": "Elimina el compte", + "confirmDescription": "Segur que voleu eliminar el compte? Es perdran totes les dades!", + "confirmTitle": "Segur?", + "text": "Aquesta acció és irreversible. Totes les dades s'eliminaran i no es podrà recuperar res.", + "title": "Elimina el compte" + }, + "title": "Accions" + }, + "devices": { + "deviceNameLabel": "Nom del dispositiu", + "failed": "La càrrega de sessions ha fallat", + "removeDevice": "Elimina", + "title": "Dispositiu" + }, + "profile": { + "finish": "Finalitza l'edició", + "firstColor": "Color de perfil 1", + "secondColor": "Color de perfil dos", + "title": "Edita la foto de perfil", + "userIcon": "Icona d'usuari" + }, + "register": { + "cta": "Comença", + "text": "Compartiu el progrés de la visualització entre dispositius i manteniu-los sincronitzats.", + "title": "Sincronització amb el núvol" + }, + "title": "Compte" + }, + "appearance": { + "activeTheme": "Actiu", + "themes": { + "blue": "Blau", + "default": "Per defecte", + "gray": "Gris", + "red": "Vermell", + "teal": "Verd blavós" + }, + "title": "Aparença" + }, + "connections": { + "server": { + "description": "Si voleu connectar-vos a un rerefons personalitzat per a emmagatzemar les vostres dades, activeu-ho i proporcioneu l'URL. <0>Instruccions.", + "label": "Servidor personalitzat", + "urlLabel": "URL del servidor personalitzat" + }, + "title": "Connexions", + "workers": { + "addButton": "Afig un «worker»", + "description": "Per fer funcionar l'aplicació, tot el trànsit s'encamina a través de servidors intermediaris. Activeu-ho si voleu portar els vostres propis «workers».<0>Instruccions.", + "emptyState": "Encara no hi ha «workers», afegiu-ne un a continuació", + "label": "Utilitza «workers» intermediaris personalitzats", + "urlLabel": "URL dels «workers»", + "urlPlaceholder": "https://" + } + }, + "reset": "Restableix", + "save": "Desa", + "sidebar": { + "info": { + "appVersion": "Versió de l'aplicació", + "backendUrl": "URL del rerefons", + "backendVersion": "Versió del rerefons", + "hostname": "Nom de l'amfitrió", + "insecure": "Insegur", + "notLoggedIn": "No heu iniciat sessió", + "secure": "Segur", + "title": "Informació de l'aplicació", + "unknownVersion": "Desconeguda", + "userId": "ID d'usuari" + } + }, + "subtitles": { + "backgroundLabel": "Opacitat del fons", + "colorLabel": "Color", + "previewQuote": "No he de tenir por. La por és l'assassina de la ment.", + "textSizeLabel": "Grandària del text", + "title": "Subtítols" + }, + "unsaved": "Hi ha canvis sense desar" + } +} diff --git a/src/assets/locales/cs.json b/src/assets/locales/cs.json new file mode 100644 index 00000000..a015e352 --- /dev/null +++ b/src/assets/locales/cs.json @@ -0,0 +1,526 @@ +{ + "about": { + "description": "sudo-flix je webová aplikace, která vyhledává na internetu proudy médií. Cílem týmu je převážně minimalistický přístup ke konzumaci obsahu.", + "faqTitle": "Často kladené otázky", + "q1": { + "body": "sudo-flix nehostuje žádný obsah. Když kliknete na něco, co chcete sledovat, na internetu se vyhledá vybrané médium (Na obrazovce načítání a na kartě 'zdroje videa' můžete vidět, který zdroj používáte). Média se nikdy nenahrávají sudo-flixem, vše probíhá prostřednictvím tohoto vyhledávacího mechanismu.", + "title": "Kde bereme obsah?" + }, + "q2": { + "body": "Není možné požádat o pořad nebo film, sudo-flix nespravuje žádný obsah. Veškerý obsah je prohlížen prostřednictvím zdrojů na internetu.", + "title": "Kde můžu požádat o pořad nebo film?" + }, + "q3": { + "body": "Naše výsledky vyhledávání jsou založeny na The Movie Database (TMDB) a zobrazují se bez ohledu na to, zda naše zdroje skutečně obsah mají.", + "title": "Ve výsledcích vyhledávání se zobrazuje pořad nebo film, proč jej nemůžu přehrát?" + }, + "title": "O sudo-flixu" + }, + "actions": { + "copied": "Zkopírováno", + "copy": "Zkopírovat" + }, + "auth": { + "createAccount": "Ještě nemáte účet? <0>Vytvořte si účet.", + "deviceNameLabel": "Název zařízení", + "deviceNamePlaceholder": "Osobní telefon", + "generate": { + "description": "Vaše přístupová fráze se chová jako vaše přezdívka a heslo. Uchovejte jí v bezpečí, protože jí budete muset zadat, abyste se mohli přihlásit ke svému účtu", + "next": "Uložil jsem si moji přístupovou frázi", + "passphraseFrameLabel": "Přístupová fráze", + "title": "Vaše přístupová fráze" + }, + "hasAccount": "Již máte účet? <0> Přihlaste se zde.", + "login": { + "description": "Pro přihlášení ke svému účtu zadejte svou přístupovou frázi", + "deviceLengthError": "Zadejte název zařízení", + "passphraseLabel": "12slovná přístupová fráze", + "passphrasePlaceholder": "Přístupová fráze", + "submit": "Přihlásit", + "title": "Přihlaste se ke svému účtu", + "validationError": "Nesprávná nebo neúplná přístupová fráze" + }, + "register": { + "information": { + "color1": "První barva profilu", + "color2": "Druhá barva profilu", + "header": "Zadejte název pro vaše zařízení a vyberte barvy a ikonu uživatele podle vašeho výběru", + "icon": "Ikona uživatele", + "next": "Další", + "title": "Informace o účtu" + } + }, + "trust": { + "failed": { + "text": "Nastavili jste to správně?", + "title": "Selhalo připojení k serveru" + }, + "host": "Připojujete se k <0>{{hostname}} - potvrďte, že mu věříte před vytvořením účtu", + "no": "Zpět", + "title": "Věříte tomuto serveru?", + "yes": "Věřím tomuto serveru" + }, + "verify": { + "description": "Zadejte prosím svou přístupovou frázi, abyste potvrdili, že jste si ji uložili, a vytvořte si účet", + "invalidData": "Data nejsou platná", + "noMatch": "Přístupová fráze neodpovídá", + "passphraseLabel": "Vaše 12slovná přístupová fráze", + "recaptchaFailed": "ReCaptcha ověření se nezdařilo", + "register": "Založit účet", + "title": "Potvrďte vaši přístupovou frázi" + } + }, + "errors": { + "badge": "Rozbilo se to", + "details": "Detaily chyby", + "reloadPage": "Znovu načíst stránku", + "showError": "Ukázat detaily chyby", + "title": "Narazili jsme na chybu!" + }, + "footer": { + "legal": { + "disclaimer": "Zřeknutí odpovědnosti", + "disclaimerText": "sudo-flix nehostuje žádné soubory, pouze odkazuje na služby třetích stran. Právní záležitosti by měly být řešeny s hostiteli souborů a poskytovateli. sudo-flix nenese odpovědnost za žádné mediální soubory zobrazené poskytovateli videa." + }, + "links": { + "discord": "Discord", + "dmca": "DMCA", + "github": "GitHub" + }, + "tagline": "Sledujte své oblíbené pořady a filmy s touto aplikací pro streamování s otevřeným zdrojovým kódem." + }, + "global": { + "name": "sudo-flix", + "pages": { + "about": "O nás", + "dmca": "DMCA", + "login": "Přihlásit se", + "onboarding": "Nastavení", + "pagetitle": "{{title}} - sudo-flix", + "register": "Zaregistrovat se", + "settings": "Nastavení" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "Záložky" + }, + "continueWatching": { + "sectionTitle": "Pokračujte ve sledování" + }, + "mediaList": { + "stopEditing": "Přestat upravovat" + }, + "search": { + "allResults": "To je vše co máme!", + "failed": "Nepodařilo se najít média, zkuste to znovu!", + "loading": "Načítání...", + "noResults": "Nemohli jsme nic najít!", + "placeholder": "Co si přejete sledovat?", + "sectionTitle": "Výsledky vyhledávání" + }, + "titles": { + "day": { + "default": "Na co byste se chtěli dnes odpoledne dívat?", + "extra": ["Chceš zažít dobrodružství? Jurský Park je pro tebe."] + }, + "morning": { + "default": "Na co byste se chtěli dnes ráno dívat?", + "extra": ["Slyšel jsem, že Před úsvitem je super."] + }, + "night": { + "default": "Na co byste se chtěli dnes večer dívat?", + "extra": ["Unaven? Slyšel jsem, že Vymítač ďábla je super."] + } + } + }, + "media": { + "episodeDisplay": "S{{season}} E{{episode}}", + "types": { + "movie": "Film", + "show": "Seriál" + } + }, + "navigation": { + "banner": { + "offline": "Zkontrolujte své internetové připojení" + }, + "menu": { + "about": "O nás", + "donation": "Přispět", + "logout": "Odhlásit se", + "register": "Synchronizovat do cloudu", + "settings": "Nastavení", + "support": "Podpořte nás" + } + }, + "notFound": { + "badge": "Nenalezeno", + "goHome": "Zpátky domů", + "message": "Dívali jsme se všude: pod koši, ve skříni, za proxy, ale nakonec jsme nemohli najít stránku, kterou hledáte.", + "title": "Tuto stránku se nepodařilo najít" + }, + "onboarding": { + "defaultConfirm": { + "cancel": "Zrušit", + "confirm": "Použít výchozí nastavení", + "description": "Výchozí nastavení nemá nejlepší streamy a může být strašně pomalá.", + "title": "Jste si jist?" + }, + "extension": { + "back": "Zpět", + "explainer": "Pomocí rozšíření prohlížeče můžete získat nejlepší streamy, které nabízíme. S pouhou instalací.", + "extensionHelp": "Pokud jste rozšíření nainstalovali, ale nebylo zjištěno. Otevřete rozšíření pomocí nabídky rozšíření ve vašem prohlížeči a postupujte podle pokynů na obrazovce.", + "status": { + "disallowed": "Rozšíření není pro tuto stránku povoleno", + "disallowedAction": "Povolit rozšíření", + "failed": "Nezdařilo se získávání stavu", + "loading": "Čekání na instalaci rozšíření", + "outdated": "Verze rozšíření je příliš stará", + "success": "Rozšíření funguje podle očekávání!" + }, + "submit": "Pokračovat", + "title": "Začněme s rozšířením" + }, + "proxy": { + "back": "Zpět", + "explainer": "Pomocí metody proxy můžete získat streamy ve skvělé kvalitě vytvořením proxy serveru.", + "input": { + "errorConnection": "Nelze se připojit k proxy", + "errorInvalidUrl": "Adresa URL není platná", + "errorNotProxy": "Byla očekávaná proxy, ale byla předána webová stránka", + "label": "Proxy URL", + "placeholder": "https://" + }, + "link": "Naučit se vytvořit proxy", + "submit": "Předložit proxy", + "title": "Pojďme uďelat novou proxy" + }, + "start": { + "explainer": "Abyste získali co nejlepší streamy. Musíte si zvolit, kterou streamovací metodu chcete použít.", + "options": { + "default": { + "text": "Nechci zdroje s dobrou kvalitou,<0 /> <1>použít výchozí nastavení" + }, + "extension": { + "action": "Nainstalujte si rozšíření", + "description": "Nainstalujte si rozšíření prohlížeče a získejte přístup k nejlepším zdrojům.", + "quality": "Nejlepší kvalita", + "title": "Rozšíření prohlížeče" + }, + "proxy": { + "action": "Nastavit proxy", + "description": "Nastavte si proxy během 5 minut, pro získání přístupu k skvělým zdrojům.", + "quality": "Dobrá kvalita", + "title": "Vlastní proxy" + } + }, + "title": "Pojďme vám nastavit sudo-flix" + } + }, + "overlays": { + "close": "Zavřít" + }, + "player": { + "back": { + "default": "Zpátky domů", + "short": "Zpět" + }, + "casting": { + "enabled": "Odesílání do zařízení..." + }, + "menus": { + "downloads": { + "disclaimer": "Stahování probíhá přímo u poskytovatele. sudo-flix nemá kontrolu nad tím, jak jsou stahování poskytovány.", + "downloadPlaylist": "Stáhnout playlist", + "downloadSubtitle": "Stáhnout aktuální titulky", + "downloadVideo": "Stáhnout video", + "hlsDisclaimer": "Stahování probíhá přímo u poskytovatele. sudo-flix nemá kontrolu nad tím, jak jsou stahování poskytovány.

    Vezměte prosím na vědomí, že stahujete HLS playlist, který není doporučen stahovat pokud nejste obeznámeni s pokročilým streamováním médií. Raději skuste jiný zdroj pro jiný formát.", + "onAndroid": { + "1": "Na Androidu klikněte na tlačítko stahování, poté na nové stránce klepněte a podržte na videu a poté vyberte uložit.", + "shortTitle": "Stahování / Android", + "title": "Stahování na Androidu" + }, + "onIos": { + "1": "Na iOS klikněte na tlačítko stahování a poté na nové stránce klikněte na a poté na Uložit do souborů .", + "shortTitle": "Stahování / iOS", + "title": "Stahování na iOS" + }, + "onPc": { + "1": "Na počítači klikněte na tlačítko stahování, poté na nové stránce klikněte pravým tlačítkem na video a vyberte Uložit video jako", + "shortTitle": "Stahování / počítač", + "title": "Stahování na počítači" + }, + "title": "Stáhnout" + }, + "episodes": { + "button": "Epizody", + "emptyState": "V této sezóně nejsou žádné epizody, vraťte se později!", + "episodeBadge": "E{{episode}}", + "loadingError": "Chyba při načítání sezóny", + "loadingList": "Načítání...", + "loadingTitle": "Načítání...", + "unairedEpisodes": "Jedna nebo více epizod v této sezóně nejsou dostupné, protože ještě nebyly odvysílány." + }, + "playback": { + "speedLabel": "Rychlost přehrávání", + "title": "Nastavení přehrávání" + }, + "quality": { + "automaticLabel": "Automatická kvalita", + "hint": "Chcete-li získat jinou kvalitu, můžete zkusit <0>přepnout zdroj.", + "iosNoQuality": "Kvůli omezením definovaným společností Apple není pro tento zdroj v iOS k dispozici výběr kvality. Chcete-li získat jinou kvalitu, můžete zkusit <0>přepnout zdroj.", + "title": "Kvalita" + }, + "settings": { + "downloadItem": "Stáhnout", + "enableSubtitles": "Zapnout titulky", + "experienceSection": "Zážitek sledování", + "playbackItem": "Nastavení přehrávání", + "qualityItem": "Kvalita", + "sourceItem": "Zdroje videa", + "subtitleItem": "Nastavení titulků", + "videoSection": "Nastavení videa" + }, + "sources": { + "failed": { + "text": "Při pokusu o nalezení videí došlo k chybě. Zkuste prosím jiný zdroj.", + "title": "Nepodařilo se extrahovat data" + }, + "noEmbeds": { + "text": "Nepodařilo se nám najít žádný vklad, zkuste prosím jiný zdroj.", + "title": "Žádné vklady" + }, + "noStream": { + "text": "Tento zdroj nemá pro tento film nebo pořad žádné proudy média.", + "title": "Žádný proud média" + }, + "title": "Zdroje", + "unknownOption": "Neznámý" + }, + "subtitles": { + "customChoice": "Vybrat titulky ze souboru", + "customizeLabel": "Přizpůsobit", + "offChoice": "Vypnuto", + "settings": { + "backlink": "Vlastní titulky", + "delay": "Posunutí titulků", + "fixCapitals": "Opravit velká písmena" + }, + "title": "Titulky", + "unknownLanguage": "Neznámé" + } + }, + "metadata": { + "api": { + "text": "Metadata API nelze načíst, zkontrolujte prosím vaše připojení k internetu.", + "title": "Nepodařilo se načíst API metadata" + }, + "dmca": { + "badge": "Odstraněno", + "text": "Toto média není dostupné, kvůli oznámení o zastavení šíření nebo nároku na autorská práva.", + "title": "Média byla odstraněna" + }, + "extensionPermission": { + "badge": "Chybí povolení", + "button": "Použít rozšíření", + "text": "Máte rozšíření, ale k jeho použití potřebujeme vaše povolení.", + "title": "Konfigurace rozšíření" + }, + "failed": { + "badge": "Neúspěšný", + "homeButton": "Jít domů", + "text": "Nelze načíst metadata média z TMDB. Zkontrolujte, zda není TMDB nefunkční nebo blokovaný na vašem internetovém připojení.", + "title": "Načtení metadat se nezdařilo" + }, + "notFound": { + "badge": "Nenalezeno", + "homeButton": "Zpátky domů", + "text": "Nemohli jsme najít média o které jste požádali. Buď bylo odstraňeno, nebo jste manipulovali s URL.", + "title": "Nemohli jsme najít Vaše média." + } + }, + "nextEpisode": { + "cancel": "Zrušit", + "next": "Další epizoda" + }, + "playbackError": { + "badge": "Chyba přehrávání", + "errors": { + "errorAborted": "Načítání média bylo přerušeno uživatelem.", + "errorDecode": "Navzdory tomu, že bylo dříve určeno jako použitelné došlo při pokusu o dekódování média k chybě.", + "errorGenericMedia": "Nastala chyba neznámého média.", + "errorNetwork": "Nastala nějaká chyba síťě, která zabránila načtení média, přestože bylo předtím dostupné.", + "errorNotSupported": "Médium nebo poskytovatel média není podporovaný." + }, + "homeButton": "Jít domů", + "text": "Nastala chyba při přehrávání média. Prosíme skuste to znovu.", + "title": "Video se nepodařilo přehrát!" + }, + "scraping": { + "items": { + "failure": "Nastala chyba", + "notFound": "Nemá toto video", + "pending": "Ověřování videí..." + }, + "notFound": { + "badge": "Nenalezeno", + "detailsButton": "Zobrazit podrobnosti", + "homeButton": "Jít domů", + "text": "Prohledali jsme naše poskytovatele a nenašli jsme média, která hledáte! Nehostujeme žádné média a nemáme žádnou kontrolu nad tím, co je k dispozici. Pro více podrobností klikněte níže na 'Zobrazit podrobnosti'.", + "title": "Nedokázali jsme to najít" + } + }, + "time": { + "regular": "{{timeWatched}} / {{duration}}", + "remaining": "{{timeLeft}} zbývá • Dokončeno v {{timeFinished, datetime}}", + "shortRegular": "{{timeWatched}}", + "shortRemaining": "-{{timeLeft}}" + }, + "turnstile": { + "description": "Ověřte, prosím, že jste člověk, vyplněním Captchy napravo. Toto je pro zajištění bezpečnosti sudo-flix!", + "error": "Nepodařilo se ověřit vaši lidskost. Zkuste to prosím znovu.", + "title": "Potřebujeme ověřit, zda jste člověk.", + "verifyingHumanity": "Ověřování vaši lidskosti..." + } + }, + "screens": { + "dmca": { + "text": "Vítejte na DMCA kontaktní stránce sudo-flixu! Respektujeme práva duševního vlastnictví a chceme rychle řešit jakékoli problémy s autorským právem. Pokud se domníváte, že vaše dílo chráněné autorskými právy bylo na naší platformě neoprávněně použito, zašlete prosím podrobné oznámení DMCA na níže uvedený e-mail. Uveďte prosím popis materiálu chráněného autorským právem, své kontaktní údaje a prohlášení o dobré víře. Jsme odhodláni tyto záležitosti rychle vyřešit a oceňujeme vaši spolupráci při udržování sudo-flixu jako místa, které respektuje kreativitu a autorská práva.", + "title": "DMCA" + }, + "loadingApp": "Načítání aplikace", + "loadingUser": "Načítání vášeho profilu", + "loadingUserError": { + "logout": "Odhlásit se", + "reset": "Resetovat vlastní server", + "text": "Nezdařilo se načíst váš profil", + "textWithReset": "Nezdařilo se načíst váš profil z vašeho serveru, chcete ho přepnout na výchozí server?" + }, + "migration": { + "failed": "Migrace dat se nezdařila.", + "inProgress": "Počkejte prosím, migrujeme vaše data. Nemělo by to trvat dlouho." + } + }, + "settings": { + "account": { + "accountDetails": { + "deviceNameLabel": "Název zařízení", + "deviceNamePlaceholder": "Osobní telefon", + "editProfile": "Upravit", + "logoutButton": "Odhlásit se" + }, + "actions": { + "delete": { + "button": "Smazat účet", + "confirmButton": "Smazat účet", + "confirmDescription": "Jste si jisti, že chcete smazat váš účet? Všechny data budou ztracena!", + "confirmTitle": "Jste si jisti?", + "text": "Tato akce nejde vrátit. Všechny data budou smazána a nic nepůjde zachránit.", + "title": "Smazat účet" + }, + "title": "Akce" + }, + "devices": { + "deviceNameLabel": "Název zařízení", + "failed": "Načtení relací se nezdařilo", + "removeDevice": "Odstranit", + "title": "Zařízení" + }, + "profile": { + "finish": "Dokončit", + "firstColor": "První barva profilu", + "secondColor": "Druhá barva profilu", + "title": "Upravit profilovou fotografii", + "userIcon": "Ikona uživatele" + }, + "register": { + "cta": "Začněte", + "text": "Sdílejte průběh sledování mezi zařízeními a udržujte je synchronizovaná.", + "title": "Synchronizace do cloudu" + }, + "title": "Účet" + }, + "appearance": { + "activeTheme": "Aktivní", + "themes": { + "blue": "Modrá", + "default": "Výchozí", + "gray": "Šedá", + "red": "Červená", + "teal": "Modrozelená" + }, + "title": "Vzhled" + }, + "connections": { + "server": { + "description": "Pokud se chcete připojit k vlastnímu backendu pro ukládání dat, povolte toto a zadejte URL adresu. <0>Instrukce.", + "label": "Vlastní server", + "urlLabel": "URL adresa vlastního serveru" + }, + "setup": { + "doSetup": "Proveďte nastavení", + "errorStatus": { + "description": "Vypadá to, že jedna nebo více položek v tomto nastavení potřebuje vaši pozornost.", + "title": "Něco potřebuje vaši pozornost" + }, + "itemError": "S tímto nastavením je něco špatně. Projděte znovu nastavením abyste to opravili.", + "items": { + "default": "Výchozí nastavení", + "extension": "Rozšíření", + "proxy": "Vlastní proxy" + }, + "redoSetup": "Proveďte znovu nastavení", + "successStatus": { + "description": "Všechny věci jsou připraveny, abyste mohli začít sledovat svá oblíbená média.", + "title": "Všechno je nastaveno!" + }, + "unsetStatus": { + "description": "Prosím klikněte na vedlejší tlačítko abyste začali proces nastavování.", + "title": "Neprošli jste nastavením" + } + }, + "title": "Spojení", + "workers": { + "addButton": "Přidat nového pracovníka", + "description": "Aby byla aplikace funkční, veškerá trafika prochází přes proxy. Povolte toto, pokud chcete používat svoje vlastní pracovníky. <0>Instrukce.", + "emptyState": "Zatím žádní pracovníci, přidej jednoho dolů", + "label": "Použít vlastní proxy pracovníky", + "urlLabel": "URL adresy pracovníků", + "urlPlaceholder": "https://" + } + }, + "preferences": { + "language": "Jazyk aplikace", + "languageDescription": "Jazyk aplikován na celou aplikaci.", + "thumbnail": "Generovat miniatury", + "thumbnailDescription": "Videa většinou nemají miniatury. Toto nastavení můžete povolit, ale mohou zpomalit vaše video.", + "thumbnailLabel": "Generovat miniatury", + "title": "Preference" + }, + "reset": "Resetovat", + "save": "Uložit", + "sidebar": { + "info": { + "appVersion": "Verze aplikace", + "backendUrl": "URL backendu", + "backendVersion": "Verze backendu", + "hostname": "Název hostitele", + "insecure": "nebezpečný", + "notLoggedIn": "Nejste přihlášen", + "secure": "bezpečný", + "title": "Informace o aplikaci", + "unknownVersion": "Neznámo", + "userId": "Uživatelské ID" + } + }, + "subtitles": { + "backgroundLabel": "Neprůhlednost pozadí", + "colorLabel": "Barva", + "previewQuote": "Nesmím se bát. Strach zabíjí myšlení.", + "textSizeLabel": "Velikost textu", + "title": "Titulky" + }, + "unsaved": "Máte neuložené změny" + } +} diff --git a/src/assets/locales/de.json b/src/assets/locales/de.json new file mode 100644 index 00000000..968a808f --- /dev/null +++ b/src/assets/locales/de.json @@ -0,0 +1,482 @@ +{ + "about": { + "description": "sudo-flix ist eine Web-App, welche das Internet nach Streams durchsucht. Das Team versucht einen minimalistischen Ansatz umzusetzen.", + "faqTitle": "Häufig gestellte Fragen", + "q1": { + "body": "sudo-flix hostet keinen eigenen Inhalt. Wenn du auf etwas zum Anschauen klickst, wird das Internet danach durchsucht (Auf dem Ladebildschirm und im Tab \"Videoquellen\" kannst du einstellen, welche Quellen verwendet werden sollen). sudo-flix lädt keine Videos hoch, alleVideos stammen aus der Suche.", + "title": "Woher stammen die Videos?" + }, + "q2": { + "body": "Das Anfragen von Serien oder Filmen ist nicht möglich. sudo-flix verwaltet keine Inhalte. Alle Videos stammen vom Quellen aus dem Internet.", + "title": "Wo kann ich eine Serie oder einen Film anfragen?" + }, + "q3": { + "body": "Unsere Suchergebnisse werden von The Movie Database (TMDB) bereitgestellt und, egal ob unsere Videoquellen über dieses Video verfügen, angezeigt.", + "title": "Die Suche zeigt eine Serie oder einen Film an, warum kann ich den dann nicht abspielen?" + }, + "title": "Über sudo-flix" + }, + "actions": { + "copied": "Kopiert", + "copy": "Kopieren" + }, + "auth": { + "createAccount": "Du hast noch keinen Account? <0>Registriere dich jetzt.", + "deviceNameLabel": "Gerätename", + "deviceNamePlaceholder": "Handy", + "generate": { + "description": "Deine Passphrase dient als dein Nutzername und Passwort. Speichere sie sicher ab, damit du dich in deinem Konto anmelden kannst", + "next": "Ich habe meine Passphrase gespeichert", + "passphraseFrameLabel": "Passphrase", + "title": "Deine Passphrase" + }, + "hasAccount": "Du hast bereits einen Account? <0>Anmelden.", + "login": { + "description": "Gebe deine Passphrase ein, um dich in deinem Konto anzumelden", + "deviceLengthError": "Gebe einen Gerätenamen ein", + "passphraseLabel": "12-Wort Passphrase", + "passphrasePlaceholder": "Passphrase", + "submit": "Anmelden", + "title": "Melde dich in deinem Konto an", + "validationError": "Falsche oder unvollständige Passphrase" + }, + "register": { + "information": { + "color1": "Profilfarbe 1", + "color2": "Profilfarbe 2", + "header": "Gebe einen Namen für dein Gerät ein und wähle ein Symbol", + "icon": "Symbol", + "next": "Weiter", + "title": "Kontoinformationen" + } + }, + "trust": { + "failed": { + "text": "Hast du es korrekt konfiguriert?", + "title": "Server nicht erreichbar" + }, + "host": "Du verbindest dich mit <0>{{hostname}} - stelle sicher das du dem Server vertraust, bevor du ein Konto erstellst", + "no": "Zurück", + "title": "Vertraust du diesem Server?", + "yes": "Ich vertraue diesem Server" + }, + "verify": { + "description": "Bitte gebe deine Passphrase ein, um zu bestätigen, dass du sie gespeichert hast und um dein Konto zu erstellen", + "invalidData": "Daten sind ungültig", + "noMatch": "Passphrasen stimmen nicht überein", + "passphraseLabel": "Deine 12-Wort Passphrase", + "recaptchaFailed": "ReCaptcha Verifizierung ist fehlgeschlagenen", + "register": "Konto erstellen", + "title": "Bestätige deine Passphrase" + } + }, + "errors": { + "badge": "Kaputt", + "details": "Fehlerdetails", + "reloadPage": "Seite neuladen", + "showError": "Zeige Fehlerdetails an", + "title": "Ein Fehler ist aufgetreten!" + }, + "footer": { + "legal": { + "disclaimer": "Hinweis", + "disclaimerText": "sudo-flix hostet keine Dateien, sondern verlinkt lediglich auf Dienste Dritter. Rechtliche Fragen sollten mit den Dateihostern und -anbietern geklärt werden. sudo-flix übernimmt keine Verantwortung für die von den Videoanbietern angezeigten Mediendateien." + }, + "links": { + "discord": "Discord", + "dmca": "DMCA", + "github": "GitHub" + }, + "tagline": "Schau deine Lieblingsserien und Filme mit dieser quelloffenen Streaming App." + }, + "global": { + "name": "sudo-flix", + "pages": { + "about": "Über", + "dmca": "DMCA", + "login": "Anmelden", + "onboarding": "Einrichtung", + "pagetitle": "{{title}} - sudo-flix", + "register": "Registrieren", + "settings": "Einstellungen" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "Favoriten" + }, + "continueWatching": { + "sectionTitle": "Weiter ansehen" + }, + "mediaList": { + "stopEditing": "Bearbeiten beenden" + }, + "search": { + "allResults": "Das ist alles!", + "failed": "Das Medium wurde nicht gefunden, bitte versuchen Sie es erneut!", + "loading": "Wird geladen...", + "noResults": "Wir haben nichts gefunden!", + "placeholder": "Was möchtest du schauen?", + "sectionTitle": "Suchergebnisse" + }, + "titles": { + "day": { + "default": "Was würdest du diesem Nachmittag gerne schauen?", + "extra": [ + "Lust auf ein Abenteuer? Dann ist Jurassic Park genau das Richtige." + ] + }, + "morning": { + "default": "Was würdest du diesen Morgen gerne schauen?", + "extra": ["Before Sunrise soll gut sein"] + }, + "night": { + "default": "Was möchtest du diesen Abend gerne schauen?", + "extra": ["Müde? Ich hab gehört The Exorcist soll gut sein."] + } + } + }, + "media": { + "episodeDisplay": "S{{season}} E{{episode}}", + "types": { + "movie": "Film", + "show": "Serie" + } + }, + "navigation": { + "banner": { + "offline": "Internetverbindung ist instabil" + }, + "menu": { + "about": "Über uns", + "donation": "Spenden", + "logout": "Abmelden", + "register": "Mit der Cloud synchronisieren", + "settings": "Einstellungen", + "support": "Support" + } + }, + "notFound": { + "badge": "Nicht gefunden", + "goHome": "Zurück zur Startseite", + "message": "Wir haben überall gesucht: Unter den Eimern, im Schrank, hinter dem Proxy. Wir konnten die gesuchte Seite nicht finden.", + "title": "Diese Seite wurde nicht gefunden" + }, + "onboarding": { + "proxy": { + "back": "Zurück gehen" + }, + "start": { + "options": { + "extension": { + "quality": "Beste Qualität" + } + } + } + }, + "overlays": { + "close": "Schließen" + }, + "player": { + "back": { + "default": "Zurück zur Startseite", + "short": "Zurück" + }, + "casting": { + "enabled": "Casting zum Gerät..." + }, + "menus": { + "downloads": { + "disclaimer": "Videos werden direkt vom Provider heruntergeladen. sudo-flix hat keinen Einfluss darauf, wie Downloads bereitgestellt werden.", + "downloadPlaylist": "Playlist herunterladen", + "downloadSubtitle": "Aktuelle Untertitel herunterladen", + "downloadVideo": "Video herunterladen", + "hlsDisclaimer": "sudo-flix hat keinen Einfluss darauf, wie Downloads bereitgestellt werden. Downloads werden direkt vom Anbieter bezogen. Bitte beachte, dass du eine HLS-Wiedergabeliste herunterlädst, dies ist nicht empfohlen für Nutzer die nicht mit Erweiterten Streaming Formaten vertraut sind. Probiere andere Anbieter für andere Formate.", + "onAndroid": { + "1": "Um auf Android Herunterzuladen, tippe auf den Download-Button, tippe und halte auf der neuen Seite auf das Video und wähle Speichern aus.", + "shortTitle": "Download / Android", + "title": "Auf Android herunterladen" + }, + "onIos": { + "1": "Um Auf iOS herunterzuladen, klick auf den Download-Button. Klicke dann auf der neuen Seite auf , dann auf In Dateien sichern .", + "shortTitle": "Download / iOS", + "title": "Auf iOS herunterladen" + }, + "onPc": { + "1": "Um am PC herunterzuladen, klicke auf den Download-Button. Klicke dann mit der rechten Maustaste auf das Video und klicke auf Video speichern als", + "shortTitle": "Download / PC", + "title": "Am PC herunterladen" + }, + "title": "Download" + }, + "episodes": { + "button": "Folgen", + "emptyState": "Keine Folgen in dieser Staffel, schau später noch einmal!", + "episodeBadge": "E{{episode}}", + "loadingError": "Fehler beim Laden der Sitzung", + "loadingList": "Wird geladen...", + "loadingTitle": "Wird geladen...", + "unairedEpisodes": "Eine oder mehrere Episoden dieser Staffel wurden deaktiviert, weil sie noch nicht ausgestrahlt wurden." + }, + "playback": { + "speedLabel": "Wiedergabegeschwindigkeit", + "title": "Wiedergabeeinstellungen" + }, + "quality": { + "automaticLabel": "Automatische Qualitätseinstellung", + "hint": "Du kannst versuchen die <0>Quelle zu ändern um andere Qualitätsoptionen zu erhalten.", + "iosNoQuality": "Durch eine Einschränkung von Apple ist die Qualitätsauswahl für iOS für diese Quelle nicht verfügbar. Du kannst versuchen <0>einen andere Quelle auszuwählen um andere Qualitätsoptionen zu erhalten.", + "title": "Qualität" + }, + "settings": { + "downloadItem": "Download", + "enableSubtitles": "Untettitel aktivieren", + "experienceSection": "Anzeigeerlebnis", + "playbackItem": "Wiedergabeeinstellungen", + "qualityItem": "Qualität", + "sourceItem": "Videoquellen", + "subtitleItem": "Untertiteleinstellungen", + "videoSection": "Videoeinstellungen" + }, + "sources": { + "failed": { + "text": "Beim Versuch, Videos zu finden, ist ein Fehler aufgetreten. Bitte versuche es mit einer anderen Quelle.", + "title": "Fehler beim Laden" + }, + "noEmbeds": { + "text": "Es konnten keine Embeds gefunden werden. Bitte versuchen es mit einer anderen Quelle.", + "title": "Keine Embeds gefunden" + }, + "noStream": { + "text": "Diese Quelle bietet keine Streams für diesen Film oder diese Serie.", + "title": "Kein Stream" + }, + "title": "Quellen", + "unknownOption": "Unbekannt" + }, + "subtitles": { + "customChoice": "Untertitel aus Datei wählen", + "customizeLabel": "Anpassen", + "offChoice": "Aus", + "settings": { + "backlink": "Eigene Untertitel", + "delay": "Untertitelverzögerung", + "fixCapitals": "Großschreibung korrigieren" + }, + "title": "Untertitel", + "unknownLanguage": "Unbekannt" + } + }, + "metadata": { + "api": { + "text": "API Metadaten konnten nicht geladen werden, überprüfe deine Netzwerkverbindung.", + "title": "API Metadaten konnten nicht geladen werden" + }, + "dmca": { + "badge": "Entfernt", + "text": "Das Video ist aufgrund einer Takedown-Anfrage oder eines Urheberrechtsanspruchs nicht mehr verfügbar.", + "title": "Video wurde entfernt" + }, + "extensionPermission": { + "badge": "Berechtigung fehlt", + "button": "Verwende Erweiterung", + "text": "Du hast die Browser-Erweiterung, aber wir brauchen deine Berechtigung um mit der Erweiterung zu starten.", + "title": "Konfiguriere die Erweiterung" + }, + "failed": { + "badge": "Fehlgeschlagen", + "homeButton": "Zurück zur Startseite", + "text": "Konnte die Videometadaten nicht von TMDB laden. Überprüfe ob TMDB funktioniert oder von deiner Internetverbindung gesperrt wird.", + "title": "Laden der Metadaten ist fehlgeschlagen" + }, + "notFound": { + "badge": "Nicht gefunden", + "homeButton": "Zurück zur Startseite", + "text": "Wir konnten das angeforderte Video nicht finden.", + "title": "Das Video konnte nicht gefunden werden." + } + }, + "nextEpisode": { + "cancel": "Abbrechen", + "next": "Nächste Folge" + }, + "playbackError": { + "badge": "Wiedergabefehler", + "errors": { + "errorAborted": "Das Laden des Videos wurde vom Nutzer abgebrochen.", + "errorDecode": "Beim Versuch, das Video zu dekodieren, ist ein Fehler aufgetreten, obwohl sie zuvor als brauchbar eingestuft worden war.", + "errorGenericMedia": "Unbekannter Videofehler ist aufgetreten.", + "errorNetwork": "Es ist ein Netzwerkfehler aufgetreten, der verhindert hat, dass das Video erfolgreich abgerufen werden konnten, obwohl es verfügbar waren.", + "errorNotSupported": "Das Video- oder Videoanbieter wird nicht unterstützt." + }, + "homeButton": "Zurück zur Startseite", + "text": "Während der Wiedergabe ist ein Fehler aufgetreten. Versuche es erneut.", + "title": "Hoppla, etwas ist schiefgegangen!" + }, + "scraping": { + "items": { + "failure": "Ein Fehler ist aufgetreten", + "notFound": "Video nicht gefunden", + "pending": "Suche nach Videos..." + }, + "notFound": { + "badge": "Nicht gefunden", + "detailsButton": "Details anzeigen", + "homeButton": "Zurück zur Startseite", + "text": "Wir haben alle Anbieter durchsucht, konnten aber nicht das Video finden nach dem du suchst! Wir stellen keine eigenen Videos bereit und haben keine Kontrolle darüber, was verfügbar ist. Bitte klicke auf \"Details anzeigen\" für mehr Details.", + "title": "Wir konnten das nicht finden" + } + }, + "time": { + "regular": "{{timeWatched}} / {{duration}}", + "remaining": "{{timeLeft}} übrig • Fertig um {{timeFinished, datetime}}", + "shortRegular": "{{timeWatched}}", + "shortRemaining": "-{{timeLeft}}" + }, + "turnstile": { + "description": "Bitte verifiziere deine Menschlichkeit mit dem Captcha auf der Rechten Seite. Dies ist um sudo-flix sicher zu halten!", + "error": "Menschlichkeit konnte nicht verifiziert werden. Bitte versuche es erneut.", + "title": "Wir müssen sicherstellen, dass du Menschlich bist.", + "verifyingHumanity": "Verifiziere deine Menschlichkeit..." + } + }, + "screens": { + "dmca": { + "text": "Willkommen zu sudo-flixs DMCA-Kontaktseite! Wir respektieren geistiges Eigentum und wollen uns schnell um urheberrechtlichen Anliegen kümmern. Falls du glaubst, dass dein urheberrechtlich geschütztes Werk unsachgemäß auf unserer Plattform verwendet wurde, sende uns bitte eine genaue DMCA-Anfrage an die unten stehende E-Mail. Diese sollte eine Beschreibung des urheberrechtlich geschützten Material, deine Kontaktinformationen sowie einer Erklärung des guten Glaubens beinhalten. Wir sind engagiert diese Anliegen schnell zu lösen und schätzen deine Hilfe dabei sudo-flix zu einer Plattform, welche Kreativität und Urheberrechte respektiert.", + "title": "DMCA" + }, + "loadingApp": "Die App wird geladen", + "loadingUser": "Dein Profil wird geladen", + "loadingUserError": { + "logout": "Abmelden", + "reset": "Eigenen Server zurücksetzen", + "text": "Beim Laden deines Profils ist ein Fehler aufgetreten", + "textWithReset": "Beim Laden deines Profils von deinem Server ist ein Fehler aufgetreten, zurück zum Standard-Server wechseln?" + }, + "migration": { + "failed": "Beim Migrieren deiner Daten ist ein Fehler aufgetreten.", + "inProgress": "Bitte warte, wir migrieren deine Daten. Das sollte nicht lange dauern." + } + }, + "settings": { + "account": { + "accountDetails": { + "deviceNameLabel": "Gerätename", + "deviceNamePlaceholder": "Handy", + "editProfile": "Bearbeiten", + "logoutButton": "Abmelden" + }, + "actions": { + "delete": { + "button": "Konto löschen", + "confirmButton": "Konto löschen", + "confirmDescription": "Konto wirklich löschen? Alle deine Daten gehen dabei verloren!", + "confirmTitle": "Bist du sicher?", + "text": "Diese Aktion kann nicht rückgängig gemacht werden. Alle Daten werden gelöscht und können nicht wiederhergestellt werden.", + "title": "Konto löschen" + }, + "title": "Aktionen" + }, + "devices": { + "deviceNameLabel": "Gerätename", + "failed": "Laden der Sitzungen fehlgeschlagen", + "removeDevice": "Entfernen", + "title": "Geräte" + }, + "profile": { + "finish": "Bearbeiten beenden", + "firstColor": "Profilfarbe 1", + "secondColor": "Profilfarbe 2", + "title": "Profilbild bearbeiten", + "userIcon": "Symbol" + }, + "register": { + "cta": "Los geht's", + "text": "Teilen deinen Fortschritt zwischen Geräten und halte sie synchronisiert.", + "title": "Mit der Cloud synchronisieren" + }, + "title": "Konto" + }, + "appearance": { + "activeTheme": "Aktiv", + "themes": { + "blue": "Blau", + "default": "Standard", + "gray": "Grau", + "red": "Rot", + "teal": "Türkis" + }, + "title": "Aussehen" + }, + "connections": { + "server": { + "description": "Falls du dich mit einem anderen Server verbinden willst, um deine Daten zu speichern. Aktiviere dies und gebe die URL an. <0>Anweisungen.", + "label": "Eigener Server", + "urlLabel": "Eigene Server-URL" + }, + "setup": { + "doSetup": "Einrichten", + "errorStatus": { + "description": "Es scheint so, als bräuchte eine oder mehrere Schritte in dieser Einrichtung deine Aufmerksamkeit.", + "title": "Etwas braucht deine Aufmerksamkeit" + }, + "itemError": "Mit diesem Setup stimmt etwas nicht. Führen Sie das Setup erneut durch, um das Problem zu beheben.", + "items": { + "default": "Standard Einstellungen", + "extension": "Erweiterung", + "proxy": "Eigene Proxy" + }, + "redoSetup": "Erneut einrichten", + "successStatus": { + "description": "Alles ist bereit, damit du deine Lieblingsserien und Filme ansehen kannst.", + "title": "Alles eingerichtet!" + }, + "unsetStatus": { + "description": "Klicken Sie bitte auf den Button rechts, um die Setup zu starten.", + "title": "Du hast das Setup noch nicht durchgeführt" + } + }, + "title": "Verbindung", + "workers": { + "addButton": "Neuen Worker hinzufügen", + "description": "Damit die App funktioniert werden alle Anfrage durch einen Proxy geleitet. Aktiviere dies, falls du deinen eigenen Worker verwenden willst. <0>Anweisungen.", + "emptyState": "Keine Worker vorhanden, füge einen unten hinzu", + "label": "Verwenden deinen eigenen Worker-Proxys", + "urlLabel": "Worker-URLs", + "urlPlaceholder": "https://" + } + }, + "preferences": { + "language": "App-Sprache", + "languageDescription": "Sprache für die ganze App.", + "thumbnail": "Miniaturansichten generieren", + "thumbnailDescription": "Meistens haben Videos keine Miniaturansicht. Du kannst diese Einstellung anmachen, um sie automatisch zu generieren, aber Sie können dein Video langsamer machen.", + "thumbnailLabel": "Miniaturansichten generieren", + "title": "Einstellungen" + }, + "reset": "Zurücksetzen", + "save": "Speichern", + "sidebar": { + "info": { + "appVersion": "App-Version", + "backendUrl": "Server-URL", + "backendVersion": "Server-Version", + "hostname": "Hostname", + "insecure": "Unsicher", + "notLoggedIn": "Du bist nicht angemeldet", + "secure": "Sicher", + "title": "App-Informationen", + "unknownVersion": "Unbekannt", + "userId": "Nutzer-ID" + } + }, + "subtitles": { + "backgroundLabel": "Hintergrunddeckkraft", + "colorLabel": "Farbe", + "previewQuote": "Das Gras wächst nicht schneller, wenn man daran zieht.", + "textSizeLabel": "Schriftgröße", + "title": "Untertitel" + }, + "unsaved": "Du hast ungespeicherte Änderungen" + } +} diff --git a/src/assets/locales/el.json b/src/assets/locales/el.json new file mode 100644 index 00000000..21737dfe --- /dev/null +++ b/src/assets/locales/el.json @@ -0,0 +1,428 @@ +{ + "about": { + "description": "Το sudo-flix είναι μία διαδικτυακή εφαρμογή που αναζητά το ίντερνετ για streams. Η ομάδα επιδιώκει μία κυρίως μινιμαλιστική προσέγγιση στην κατανάλωση περιεχομένου.", + "faqTitle": "Συχνές ερωτήσεις", + "q1": { + "body": "Το sudo-flix δεν φιλοξενεί περιεχόμενο. Σε κάθε κλικ για οτιδήποτε θέλετε να παρακολουθήσετε, το sudo-flix πραγματοποιεί αναζήτηση στο διαδίκτυο για το επιλεγμένο πολυμέσο (Στην οθόνη φόρτωσης και στην καρτέλα \"πηγές βίντεο\" μπορείτε να δείτε ποια πηγή χρησιμοποιείτε). Τα πολυμέσα δεν φορτώνονται ποτέ από το sudo-flix, όλα γίνονται μέσω του παραπάνω μηχανισμού.", + "title": "Από πού προέρχεται το περιεχόμενο;" + }, + "q2": { + "body": "Δεν είναι εφικτό να αιτηθούν σειρές ή ταινίες, το sudo-flix δεν διαχειρίζεται το περιεχόμενο. Όλα τα πολυμέσα προβάλονται από πηγές στο διαδίκτυο.", + "title": "Που μπορώ να αιτηθώ μία σειρά ή ταινία;" + }, + "q3": { + "body": "Τα αποτελέσματα των αναζητήσεων τροφοδοτούνται από το The Movie Database (TMDB) και προβάλλονται ανεξάρτητα με το αν οι πηγές διαθέτουν το εν λόγω πολυμέσο.", + "title": "Τα αποτελέσματα της αναζήτησης εμφανίζουν την σειρά ή την ταινία, γιατί δεν μπορώ να την αναπαράγω;" + }, + "title": "Σχετικά με το sudo-flix" + }, + "actions": { + "copied": "Αντιγράφθηκε", + "copy": "Αντιγραφή" + }, + "auth": { + "createAccount": "Δεν έχετε ακόμη λογαριασμό; <0>Δημιουργήστε ένα λογαριασμό.", + "deviceNameLabel": "Όνομα συσκευής", + "deviceNamePlaceholder": "Προσωπικό τηλέφωνο", + "generate": { + "description": "Η συνθηματική σας φράση λειτουργεί ταυτόχρονα ως όνομα χρήστη και κωδικός πρόσβασης. Φροντίστε να το φυλάξετε, καθώς θα χρειαστεί να το εισάγετε για να συνδεθείτε στο λογαριασμό σας", + "next": "Έχω αποθηκέυση την συνθηματική μου φράση", + "passphraseFrameLabel": "Συνθηματική φράση", + "title": "Η συνθηματική σας φράση" + }, + "hasAccount": "Έχετε ήδη λογαριασμό; <0>Συνδεθείτε εδώ.", + "login": { + "description": "Παρακαλώ εισάγετε τη συνθηματική σας φράση για να συνδεθείτε στο λογαριασμό σας", + "deviceLengthError": "Παρακαλώ εισάγετε όνομα συσκευής", + "passphraseLabel": "Συνθηματική φράση 12 λέξεων", + "passphrasePlaceholder": "Συνθηματική φράση", + "submit": "Σύνδεση", + "title": "Συνδεθείτε στον λογαριασμό σας", + "validationError": "Λανθασμένη ή ελλιπής συνθηματική φράση" + }, + "register": { + "information": { + "color1": "Πρωτεύον χρώμα προφίλ", + "color2": "Δευτερεύον χρώμα προφίλ", + "header": "Εισάγετε ένα όνομα για τη συσκευή σας και επιλέξτε χρώματα και ένα εικονίδιο χρήστη της αρεσκείας σας", + "icon": "Εικονίδιο χρήστη", + "next": "Επόμενο", + "title": "Πληροφορίες λογαριασμού" + } + }, + "trust": { + "failed": { + "text": "Το ρυθμίσατε σωστά;", + "title": "Αδυναμία σύνδεσης με τον διακομιστή" + }, + "host": "Συνδέεστε στον διακομιστή <0>{{hostname}} - παρακαλούμε επιβεβαιώστε ότι τον εμπιστεύεστε πριν δημιουργήσετε λογαριασμό", + "no": "Επιστροφή", + "title": "Εμπιστεύεστε αυτόν τον διακομιστή;", + "yes": "Εμπιστεύομαι αυτόν τον διακομιστή" + }, + "verify": { + "description": "Παρακαλώ εισάγετε τη συνθηματική σας φράση από τα προηγούμενα βήματα για να επιβεβαιώσετε ότι την έχετε αποθηκεύσει και να δημιουργήσετε τον λογαριασμό σας", + "invalidData": "Τα δεδομένα δεν είναι έγκυρα", + "noMatch": "Η φράση πρόσβασης δεν ταυτίζεται", + "passphraseLabel": "Η συνθηματική σας φράση 12 λέξεων", + "recaptchaFailed": "Η επικύρωση του ReCaptcha απέτυχε", + "register": "Δημιουργία λογαριασμού", + "title": "Επικυρώστε τη συνθηματική σας φράση" + } + }, + "errors": { + "badge": "Χάλασε", + "details": "Λεπτομέρειες σφάλματος", + "reloadPage": "Επαναφόρτωση της σελίδας", + "showError": "Εμφάνιση λεπτομερειών σφάλματος", + "title": "Αντιμετωπίσαμε ένα σφάλμα!" + }, + "footer": { + "legal": { + "disclaimer": "Αποποίηση ευθύνης", + "disclaimerText": "Το sudo-flix δεν φιλοξενεί κανένα αρχείο, απλώς παραπέμπει σε υπηρεσίες τρίτων. Τα νομικά ζητήματα θα πρέπει να διευθετηθούν με τους παρόχους και τους διακομιστές που φιλοξενούν τα εν λόγω αρχεία. Το sudo-flix δεν είναι υπεύθυνο για τα αρχεία πολυμέσων που προβάλλονται από τους παρόχους βίντεο." + }, + "links": { + "discord": "Discord", + "dmca": "DMCA (νόμος περί πνευματικών δικαιωμάτων)", + "github": "GitHub" + }, + "tagline": "Παρακολουθήστε τις αγαπημένες σας σειρές και ταινίες με αυτή την εφαρμογή streaming ανοιχτού κώδικα." + }, + "global": { + "name": "sudo-flix", + "pages": { + "about": "Σχετικά", + "dmca": "DMCA (νόμος περί πνευματικών δικαιωμάτων)", + "login": "Σύνδεση", + "pagetitle": "{{title}} - sudo-flix", + "register": "Εγγραφή", + "settings": "Ρυθμίσεις" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "Σελιδοδείκτες" + }, + "continueWatching": { + "sectionTitle": "Συνεχίστε να παρακολουθείτε" + }, + "mediaList": { + "stopEditing": "Σταματήστε την επεξεργασία" + }, + "search": { + "allResults": "Αυτά είναι όλα όσα έχουμε!", + "failed": "Απέτυχε η εύρεση πολυμέσων, δοκιμάστε ξανά!", + "loading": "Φόρτωση...", + "noResults": "Δεν μπορέσαμε να βρούμε τίποτα!", + "placeholder": "Τι θέλετε να παρακολουθήσετε;", + "sectionTitle": "Αποτελέσματα αναζήτησης" + }, + "titles": { + "day": { + "default": "Τι θα θέλατε να παρακολουθήσετε σήμερα το απόγευμα;", + "extra": [ + "Νιώθετε περιπετειώδης; Το Jurassic Park μπορεί να είναι η τέλεια επιλογή." + ] + }, + "morning": { + "default": "Τι θα θέλατε να παρακολουθήσετε σήμερα το πρωί;", + "extra": ["Έχω ακούσει ότι το Before Sunrise είναι καλό"] + }, + "night": { + "default": "Τι θα θέλατε να παρακολουθήσετε απόψε;", + "extra": ["Κούραση; Έχω ακούσει ότι ο Εξορκιστής είναι καλός."] + } + } + }, + "media": { + "episodeDisplay": "Σ{{season}} Ε{{episode}}", + "types": { + "movie": "Ταινία", + "show": "Σειρά" + } + }, + "navigation": { + "banner": { + "offline": "Ελέγξτε τη σύνδεσή σας στο διαδίκτυο" + }, + "menu": { + "about": "Σχετικά με εμάς", + "donation": "Δωρεά", + "logout": "Αποσύνδεση", + "register": "Συγχρονισμός με το cloud", + "settings": "Ρυθμίσεις", + "support": "Υποστήριξη" + } + }, + "notFound": { + "badge": "Δεν βρέθηκε", + "goHome": "Επιστροφή στην αρχική", + "message": "Ψάξαμε παντού: κάτω από τους κάδους, στην ντουλάπα, πίσω από το proxy, αλλά τελικά δεν μπορέσαμε να βρούμε τη σελίδα που ψάχνετε.", + "title": "Δεν μπόρεσε να βρεθεί η σελίδα" + }, + "overlays": { + "close": "Κλείσιμο" + }, + "player": { + "back": { + "default": "Επιστροφή στην αρχική", + "short": "Επιστροφή" + }, + "casting": { + "enabled": "Αναμετάδοση στην συσκευή..." + }, + "menus": { + "downloads": { + "disclaimer": "Οι λήψεις προέρχονται απευθείας από τον πάροχο. Το sudo-flix δεν ελέγχει τον τρόπο με τον οποίο παρέχονται οι λήψεις.", + "downloadPlaylist": "Λήψη λίστας αναπαραγωγής", + "downloadSubtitle": "Κατέβασμα τρέχοντος υπότιτλου", + "downloadVideo": "Λήψη βίντεο", + "hlsDisclaimer": "Οι λήψεις προέρχονται απευθείας από τον πάροχο. Το sudo-flix δεν ελέγχει τον τρόπο με τον οποίο παρέχονται οι λήψεις. Παρακαλώ λάβετε υπόψη ότι κατεβάζετε μια λίστα αναπαραγωγής HLS, η οποία προορίζεται για χρήστες που είναι εξοικειωμένοι με την προηγμένη ροή πολυμέσων.", + "onAndroid": { + "1": "Για να κάνετε λήψη σε συσκευή Android, κάντε κλικ στο κουμπί λήψης και, στη νέα σελίδα, πατήστε παρατεταμένα στο βίντεο και, στη συνέχεια, επιλέξτε αποθήκευση.", + "shortTitle": "Λήψη / Android", + "title": "Λήψη σε συσκευή Android" + }, + "onIos": { + "1": "Για να κάνετε λήψη σε συσκευή iOS, κάντε κλικ στο κουμπί λήψης και, στη νέα σελίδα, κάντε κλικ στο και, στη συνέχεια, στο Αποθήκευση στα αρχεία .", + "shortTitle": "Λήψη / iOS", + "title": "Λήψη σε συσκευή iOS" + }, + "onPc": { + "1": "Στον υπολογιστή, κάντε κλικ στο κουμπί λήψης και, στη νέα σελίδα, κάντε δεξί κλικ στο βίντεο και επιλέξτε Αποθήκευση βίντεο ως", + "shortTitle": "Λήψη / PC", + "title": "Λήψη στο PC" + }, + "title": "Λήψη" + }, + "episodes": { + "button": "Επεισόδια", + "emptyState": "Δεν υπάρχουν επεισόδια σε αυτή τη σεζόν, επιστρέψτε αργότερα!", + "episodeBadge": "Ε{{episode}}", + "loadingError": "Σφάλμα φόρτωσης της σεζόν", + "loadingList": "Φόρτωση...", + "loadingTitle": "Φόρτωση...", + "unairedEpisodes": "Ένα ή περισσότερα επεισόδια αυτής της σεζόν έχουν απενεργοποιηθεί επειδή δεν έχουν προβληθεί ακόμα." + }, + "playback": { + "speedLabel": "Ταχύτητα αναπαραγωγής", + "title": "Ρυθμίσεις αναπαραγωγής" + }, + "quality": { + "automaticLabel": "Αυτόματη ποιότητα", + "hint": "Μπορείτε να δοκιμάσετε <0>να αλλάξετε πηγή για να έχετε διαφορετικές επιλογές ποιότητας.", + "iosNoQuality": "Λόγω των περιορισμών που έχει ορίσει η Apple, η επιλογή ποιότητας δεν είναι διαθέσιμη σε συσκευές iOS για αυτή την πηγή. Μπορείτε να δοκιμάσετε <0>να αλλάξετε πηγή για να έχετε διαφορετικές επιλογές ποιότητας.", + "title": "Ποιότητα" + }, + "settings": { + "downloadItem": "Λήψη", + "enableSubtitles": "Ενεργοποίηση υποτίτλων", + "experienceSection": "Εμπειρία θέασης", + "playbackItem": "Ρυθμίσεις αναπαραγωγής", + "qualityItem": "Ποιότητα", + "sourceItem": "Πηγές βίντεο", + "subtitleItem": "Ρυθμίσεις υποτίτλων", + "videoSection": "Ρυθμίσεις βίντεο" + }, + "sources": { + "failed": { + "text": "Υπήρξε σφάλμα κατά την προσπάθεια εύρεσης βίντεο, παρακαλούμε δοκιμάστε μια άλλη πηγή.", + "title": "Το scrape απέτυχε" + }, + "noEmbeds": { + "text": "Δεν μπορέσαμε να βρούμε κανένα embed, παρακαλούμε δοκιμάστε μια άλλη πηγή.", + "title": "Δεν βρέθηκε κανένα embed" + }, + "noStream": { + "text": "Αυτή η πηγή δεν έχει streams για αυτή την ταινία ή σειρά.", + "title": "Δεν υπάρχει stream" + }, + "title": "Πηγές", + "unknownOption": "Άγνωστο" + }, + "subtitles": { + "customChoice": "Επιλογή υποτίτλων από αρχείο", + "customizeLabel": "Προσαρμογή", + "offChoice": "Σβηστό", + "settings": { + "backlink": "Προσαρμοσμένοι υπότιτλοι", + "delay": "Καθυστέρηση υποτίτλων", + "fixCapitals": "Επιδιόρθωση κεφαλαιοποίησης" + }, + "title": "Υπότιτλοι", + "unknownLanguage": "Άγνωστο" + } + }, + "metadata": { + "api": { + "text": "Δεν ήταν δυνατή η φόρτωση των μεταδεδομένων του API, ελέγξτε τη σύνδεσή σας στο διαδίκτυο.", + "title": "Αποτυχία φόρτωσης μεταδεδομένων API" + }, + "failed": { + "badge": "Απέτυχε", + "homeButton": "Επιστοφή στην αρχική", + "text": "Δεν ήταν δυνατή η φόρτωση των μεταδεδομένων του πολυμέσου από την TMDB. Ελέγξτε αν η TMDB είναι εκτός λειτουργίας ή αποκλεισμένη στη σύνδεσή σας στο διαδίκτυο.", + "title": "Αποτυχία φόρτωσης μεταδεδομένων" + }, + "notFound": { + "badge": "Δεν βρέθηκε", + "homeButton": "Επιστροφή στην αρχική σελίδα", + "text": "Δεν μπορέσαμε να βρούμε το πολυμέσο που ζητήσατε. Είτε έχει αφαιρεθεί είτε παραποιήσατε τη διεύθυνση URL.", + "title": "Το συγκεκριμένο πολυμέσο δεν μπόρεσε να βρεθεί." + } + }, + "nextEpisode": { + "cancel": "Ακύρωση", + "next": "Επόμενο επεισόδιο" + }, + "playbackError": { + "badge": "Σφάλμα αναπαραγωγής", + "errors": { + "errorAborted": "Η λήψη των πολυμέσων διακόπηκε κατόπιν αιτήματος του χρήστη.", + "errorDecode": "Παρά το γεγονός ότι προηγουμένως είχε διαπιστωθεί ότι μπορεί να χρησιμοποιηθεί, προέκυψε σφάλμα κατά την αποκωδικοποίηση του πολυμέσου, με αποτέλεσμα την εμφάνιση σφάλματος.", + "errorGenericMedia": "Εμφανίστηκε άγνωστο σφάλμα πολυμέσου.", + "errorNetwork": "Παρουσιάστηκε κάποιο σφάλμα δικτύου που εμπόδισε την επιτυχή ανάκτηση των πολυμέσων, παρόλο που προηγουμένως ήταν διαθέσιμα.", + "errorNotSupported": "Το αντικείμενο πολυμέσων ή ο πάροχος πολυμέσων δεν υποστηρίζεται." + }, + "homeButton": "Επιστροφή στην αρχική", + "text": "Υπήρξε σφάλμα κατά την προσπάθεια αναπαραγωγής του πολυμέσου. Προσπαθήστε ξανά.", + "title": "Αποτυχία αναπαραγωγής βίντεο!" + }, + "scraping": { + "items": { + "failure": "Παρουσιάστηκε σφάλμα", + "notFound": "Δεν έχει το βίντεο", + "pending": "Έλεγχος για βίντεο..." + }, + "notFound": { + "badge": "Δεν βρέθηκε", + "detailsButton": "Εμφάνιση λεπτομερειών", + "homeButton": "Επιστροφή στην αρχική", + "text": "Ψάξαμε στους παρόχους μας και δεν μπορέσαμε να βρούμε το πολυμέσο που αναζητάτε! Δεν φιλοξενούμε τα πολυμέσα και δεν έχουμε κανέναν έλεγχο για το τι είναι διαθέσιμο. Παρακαλούμε κάντε κλικ στο 'Εμφάνιση λεπτομερειών' παρακάτω για περισσότερες λεπτομέρειες.", + "title": "Δεν μπορέσαμε να το βρούμε αυτό" + } + }, + "time": { + "regular": "{{timeWatched}}/{{duration}}", + "remaining": "{{timeLeft}} απέμεινε • Ολοκλήρωση στις {{timeFinished, datetime}}", + "shortRegular": "{{timeWatched}}", + "shortRemaining": "-{{timeLeft}}" + }, + "turnstile": { + "description": "Επαληθεύστε ότι είστε άνθρωπος συμπληρώνοντας το Captcha στα δεξιά. Αυτό γίνεται για να διατηρηθεί ο ιστός της ταινίας ασφαλής!", + "error": "Αποτυχία επαλήθευσης της ανθρωπιάς σας. ΠΑΡΑΚΑΛΩ προσπαθησε ξανα.", + "title": "Πρέπει να επαληθεύσουμε ότι είστε άνθρωπος.", + "verifyingHumanity": "Επαλήθευση της ανθρωπιάς σας..." + } + }, + "screens": { + "dmca": { + "text": "Καλώς ήρθατε στη σελίδα επικοινωνίας DMCA (νόμου περί πνευματικών δικαιωμάτων) της sudo-flix! Σεβόμαστε τα δικαιώματα πνευματικής ιδιοκτησίας και επιθυμούμε να αντιμετωπίσουμε γρήγορα τυχόν νομικά ζητήματα πνευματικών δικαιωμάτων. Εάν πιστεύετε ότι το έργο σας που προστατεύεται από πνευματικά δικαιώματα έχει χρησιμοποιηθεί αθέμιτα στην πλατφόρμα μας, παρακαλούμε στείλτε μια λεπτομερή ειδοποίηση στην παρακάτω διεύθυνση ηλεκτρονικού ταχυδρομίου. Παρακαλούμε να συμπεριλάβετε μια περιγραφή του υλικού που προστατεύεται από πνευματικά δικαιώματα, τα στοιχεία επικοινωνίας σας και μια δήλωση καλής πίστης. Δεσμευόμαστε να επιλύουμε αυτά τα θέματα άμεσα και εκτιμούμε τη συνεργασία σας για να διατηρήσουμε το sudo-flix ένα μέρος που σέβεται τη δημιουργικότητα και τα πνευματικά δικαιώματα.", + "title": "DMCA (νόμος περί πνευματικών δικαιωμάτων)" + }, + "loadingApp": "Φόρτωση εφαρμογής", + "loadingUser": "Φόρτωση του προφίλ σας", + "loadingUserError": { + "logout": "Αποσύνδεση", + "reset": "Επαναφορά προσαρμοσμένου διακομιστή", + "text": "Απέτυχε η φόρτωση του προφίλ σας", + "textWithReset": "Αποτυχία φόρτωσης του προφίλ σας από τον προσαρμοσμένο διακομιστή σας, θα θέλετε να επιστρέψετε στον προεπιλεγμένο διακομιστή;" + }, + "migration": { + "failed": "Απέτυχε η μεταφορά των δεδομένων σας.", + "inProgress": "Παρακαλώ περιμένετε, μεταφέρουμε τα δεδομένα σας. Αυτό δεν θα διαρκέσει πολύ." + } + }, + "settings": { + "account": { + "accountDetails": { + "deviceNameLabel": "Όνομα συσκευής", + "deviceNamePlaceholder": "Προσωπικό τηλέφωνο", + "editProfile": "Επεξεργασία", + "logoutButton": "Αποσύνδεση" + }, + "actions": { + "delete": { + "button": "Διαγραφή λογαριασμού", + "confirmButton": "Διαγραφή λογαριασμού", + "confirmDescription": "Είστε σίγουροι ότι θέλετε να διαγράψετε τον λογαριασμό σας; Όλα τα δεδομένα σας θα χαθούν!", + "confirmTitle": "Είστε σίγουροι;", + "text": "Η ενέργεια αυτή είναι μη αναστρέψιμη. Όλα τα δεδομένα θα διαγραφούν και τίποτα δεν μπορεί να ανακτηθεί.", + "title": "Διαγραφή λογαριασμού" + }, + "title": "Ενέργειες" + }, + "devices": { + "deviceNameLabel": "Όνομα συσκευής", + "failed": "Αποτυχία φόρτωσης συνεδριών", + "removeDevice": "Αφαίρεση", + "title": "Συσκευές" + }, + "profile": { + "finish": "Ολοκλήρωση της επεξεργασίας", + "firstColor": "Πρωτεύον χρώμα προφίλ", + "secondColor": "Δευτερεύον χρώμα προφίλ", + "title": "Επεξεργασία εικονιδίου προφίλ", + "userIcon": "Εικονίδιο χρήστη" + }, + "register": { + "cta": "Ξεκινήστε", + "text": "Μοιραστείτε την πρόοδο παρακολούθησης σας μεταξύ των συσκευών και διατηρήστε τις συγχρονισμένες.", + "title": "Συγχρονισμός με το cloud" + }, + "title": "Λογαριασμός" + }, + "appearance": { + "activeTheme": "Ενεργός", + "themes": { + "blue": "Μπλε", + "default": "Προεπιλογή", + "gray": "Γκρι", + "red": "Κόκκινο", + "teal": "Πετρόλ" + }, + "title": "Εμφάνιση" + }, + "connections": { + "server": { + "description": "Αν θέλετε να συνδεθείτε σε ένα προσαρμοσμένο backend για την αποθήκευση των δεδομένων σας, ενεργοποιήστε το και παραχωρήστε τη διεύθυνση URL.", + "label": "Προσαρμοσμένος διακομιστής", + "urlLabel": "Διεύθυνση URL προσαρμοσμένου διακομιστή" + }, + "title": "Συνδέσεις", + "workers": { + "addButton": "Προσθήκη νέου worker", + "description": "Για να λειτουργήσει η εφαρμογή, όλη η κυκλοφορία δρομολογείται μέσω διακομιστών μεσολάβησης. Ενεργοποιήστε το εάν θέλετε να φέρετε τους δικούς σας workers.", + "emptyState": "Δεν υπάρχουν ακόμη workers, προσθέστε έναν παρακάτω", + "label": "Χρήση προσαρμοσμένων proxy workers", + "urlLabel": "Διευθύνσεις URL των worker", + "urlPlaceholder": "https://" + } + }, + "reset": "Επαναφορά", + "save": "Αποθήκευση", + "sidebar": { + "info": { + "appVersion": "Έκδοση εφαρμογής", + "backendUrl": "Διεύθυνση URL του backend", + "backendVersion": "Έκδοση του backend", + "hostname": "Όνομα διακομιστή", + "insecure": "Ανασφαλές", + "notLoggedIn": "Δεν είστε συνδεδεμένοι", + "secure": "Ασφαλές", + "title": "Πληροφορίες εφαρμογής", + "unknownVersion": "Άγνωστο", + "userId": "Αναγνωριστικό χρήστη" + } + }, + "subtitles": { + "backgroundLabel": "Διαφάνεια φόντου", + "colorLabel": "Χρώμα", + "previewQuote": "Δεν πρέπει να φοβάμαι. Ο φόβος είναι ο δολοφόνος του μυαλού.", + "textSizeLabel": "Μέγεθος κειμένου", + "title": "Υπότιτλοι" + }, + "unsaved": "Έχετε μη αποθηκευμένες αλλαγές" + } +} diff --git a/src/assets/locales/en.json b/src/assets/locales/en.json new file mode 100644 index 00000000..2003ef34 --- /dev/null +++ b/src/assets/locales/en.json @@ -0,0 +1,533 @@ +{ + "about": { + "description": "sudo-flix is a web application that searches the internet for streams. The team aims for a mostly minimalistic approach to consuming content.", + "faqTitle": "Common questions", + "q1": { + "body": "sudo-flix does not host any content. When you click on something to watch, the internet is searched for the selected media (On the loading screen and in the 'video sources' tab you can see which source you're using). Media never gets uploaded by sudo-flix, everything is through this searching mechanism.", + "title": "Where does the content come from?" + }, + "q2": { + "body": "It's not possible to request a show or movie, sudo-flix does not manage any content. All content is viewed through sources on the internet.", + "title": "Where can I request a show or movie?" + }, + "q3": { + "body": "Our search results are powered by The Movie Database (TMDB) and display regardless of whether our sources actually have the content.", + "title": "The search results display the show or movie, why can't I play it?" + }, + "title": "About sudo-flix" + }, + "actions": { + "copied": "Copied", + "copy": "Copy" + }, + "auth": { + "createAccount": "Don't have an account yet? <0>Create an account.", + "deviceNameLabel": "Device name", + "deviceNamePlaceholder": "Personal phone", + "generate": { + "description": "Your passphrase acts as your username and password. Make sure to keep it safe as you will need to enter it to login to your account", + "next": "I have saved my passphrase", + "passphraseFrameLabel": "Passphrase", + "title": "Your passphrase" + }, + "hasAccount": "Already have an account? <0>Login here.", + "login": { + "description": "Please enter your passphrase to login to your account", + "deviceLengthError": "Please enter a device name", + "passphraseLabel": "12-Word passphrase", + "passphrasePlaceholder": "Passphrase", + "submit": "Login", + "title": "Login to your account", + "validationError": "Incorrect or incomplete passphrase" + }, + "register": { + "information": { + "color1": "Profile color one", + "color2": "Profile color two", + "header": "Enter a name for your device and pick colours and a user icon of your choosing", + "icon": "User icon", + "next": "Next", + "title": "Account information" + } + }, + "trust": { + "failed": { + "text": "Did you configure it correctly?", + "title": "Failed to reach server" + }, + "host": "You are connecting to <0>{{hostname}} - please confirm you trust it before making an account", + "no": "Go back", + "title": "Do you trust this server?", + "yes": "I trust this server" + }, + "verify": { + "description": "Please enter your passphrase from earlier to confirm you have saved it and to create your account", + "invalidData": "Data is not valid", + "noMatch": "Passphrase doesn't match", + "passphraseLabel": "Your 12-word passphrase", + "recaptchaFailed": "ReCaptcha validation failed", + "register": "Create account", + "title": "Confirm your passphrase" + } + }, + "errors": { + "badge": "It broke", + "details": "Error details", + "reloadPage": "Reload the page", + "showError": "Show error details", + "title": "We encountered an error!" + }, + "footer": { + "legal": { + "disclaimer": "Disclaimer", + "disclaimerText": "sudo-flix does not host any files, it merely links to 3rd party services. Legal issues should be taken up with the file hosts and providers. sudo-flix is not responsible for any media files shown by the video providers." + }, + "links": { + "discord": "Discord", + "dmca": "DMCA", + "github": "GitHub" + }, + "tagline": "Watch your favourite shows and movies with this open source streaming app." + }, + "global": { + "name": "sudo-flix", + "pages": { + "about": "About", + "dmca": "DMCA", + "login": "Login", + "pagetitle": "{{title}} - sudo-flix", + "register": "Register", + "settings": "Settings", + "onboarding": "Setup" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "Bookmarks" + }, + "continueWatching": { + "sectionTitle": "Continue Watching" + }, + "mediaList": { + "stopEditing": "Stop editing" + }, + "search": { + "allResults": "That's all we have!", + "failed": "Failed to find media, try again!", + "loading": "Loading...", + "noResults": "We couldn't find anything!", + "placeholder": "What do you want to watch?", + "sectionTitle": "Search results" + }, + "titles": { + "day": { + "default": "What would you like to watch this afternoon?", + "extra": [ + "Have you heard of South Beach Tow, its a trip." + ] + }, + "morning": { + "default": "What would you like to watch this morning?", + "extra": ["You should watch Worst Bakers in America."] + }, + "night": { + "default": "What would you like to watch tonight?", + "extra": ["Tired? Try winding down with Friends."] + } + } + }, + "media": { + "episodeDisplay": "S{{season}} E{{episode}}", + "types": { + "movie": "Movie", + "show": "Show" + } + }, + "navigation": { + "banner": { + "offline": "Check your internet connection" + }, + "menu": { + "about": "About us", + "donation": "Donate", + "logout": "Log out", + "register": "Sync to cloud", + "settings": "Settings", + "support": "Support" + } + }, + "notFound": { + "badge": "Not found", + "goHome": "Back to home", + "message": "We looked everywhere: under the bins, in the closet, behind the proxy but ultimately couldn't find the page you are looking for.", + "title": "Couldn't find that page" + }, + "overlays": { + "close": "Close" + }, + "player": { + "turnstile": { + "verifyingHumanity": "Verifying your humanity...", + "title": "We need to verify that you're human.", + "description": "Please verify that you are human by completing the Captcha on the right. This is to keep sudo-flix safe!", + "error": "Failed to verify your humanity. Please try again." + }, + "back": { + "default": "Back to home", + "short": "Back" + }, + "casting": { + "enabled": "Casting to device..." + }, + "menus": { + "settings": { + "videoSection": "Video settings", + "experienceSection": "Viewing experience", + "enableSubtitles": "Enable Subtitles", + "subtitleItem": "Subtitle settings", + "sourceItem": "Video sources", + "playbackItem": "Playback settings", + "downloadItem": "Download", + "qualityItem": "Quality" + }, + "episodes": { + "button": "Episodes", + "loadingTitle": "Loading...", + "loadingList": "Loading...", + "loadingError": "Error loading season", + "emptyState": "There are no episodes in this season, check back later!", + "episodeBadge": "E{{episode}}", + "unairedEpisodes": "One or more episodes in this season have been disabled because they haven't been aired yet." + }, + "sources": { + "title": "Sources", + "unknownOption": "Unknown", + "noStream": { + "title": "No stream", + "text": "This source has no streams for this movie or show." + }, + "noEmbeds": { + "title": "No embeds found", + "text": "We were unable to find any embeds, please try a different source." + }, + "failed": { + "title": "Failed to scrape", + "text": "There was an error while trying to find any videos, please try a different source." + } + }, + "subtitles": { + "title": "Subtitles", + "customizeLabel": "Customize", + "settings": { + "fixCapitals": "Fix capitalization", + "delay": "Subtitle delay", + "backlink": "Custom subtitles" + }, + "customChoice": "Select subtitle from file", + "offChoice": "Off", + "unknownLanguage": "Unknown" + }, + "downloads": { + "disclaimer": "Downloads are taken directly from the provider. sudo-flix does not have control over how the downloads are provided.", + "downloadSubtitle": "Download current subtitle", + "downloadPlaylist": "Download playlist", + "downloadVideo": "Download video", + "hlsDisclaimer": "Downloads are taken directly from the provider. sudo-flix does not have control over how the downloads are provided.

    Please note that you are downloading an HLS playlist, it is not recommended to download if you are not familiar with advanced streaming formats. Try different sources for different formats.", + "onAndroid": { + "1": "To download on Android, click the download button then, on the new page, tap and hold on the video, then select save.", + "shortTitle": "Download / Android", + "title": "Downloading on Android" + }, + "onIos": { + "1": "To download on iOS, click the download button then, on the new page, click , then Save to Files .", + "shortTitle": "Download / iOS", + "title": "Downloading on iOS" + }, + "onPc": { + "1": "On PC, click the download button then, on the new page, right click the video and select Save video as", + "shortTitle": "Download / PC", + "title": "Downloading on PC" + }, + "title": "Download" + }, + "playback": { + "speedLabel": "Playback speed", + "title": "Playback settings" + }, + "quality": { + "automaticLabel": "Automatic quality", + "hint": "You can try <0>switching source to get different quality options.", + "iosNoQuality": "Due to Apple-defined limitations, quality selection is not available on iOS for this source. You can try <0>switching to another source to get different quality options.", + "title": "Quality" + } + }, + "metadata": { + "failed": { + "badge": "Failed", + "homeButton": "Go home", + "text": "Could not load the media's metadata from TMDB. Please check whether TMDB is down or blocked on your internet connection.", + "title": "Failed to load metadata" + }, + "api": { + "text": "Could not load API metadata, please check your internet connection.", + "title": "Failed to load API metadata" + }, + "notFound": { + "badge": "Not found", + "homeButton": "Back to home", + "text": "We couldn't find the media you requested. Either it's been removed or you tampered with the URL.", + "title": "Couldn't find that media." + }, + "extensionPermission": { + "badge": "Permission Missing", + "title": "Configure the extension", + "text": "You have the browser extension, but we need your permission to get started using the extension.", + "button": "Use extension" + }, + "dmca": { + "badge": "Removed", + "title": "Media has been removed", + "text": "This media is no longer available due to a takedown notice or copyright claim." + } + }, + "nextEpisode": { + "cancel": "Cancel", + "next": "Next episode" + }, + "playbackError": { + "badge": "Playback error", + "errors": { + "errorAborted": "The fetching of the media was aborted by the user's request.", + "errorDecode": "Despite having previously been determined to be usable, an error occurred while trying to decode the media resource, resulting in an error.", + "errorGenericMedia": "Unknown media error occurred.", + "errorNetwork": "Some kind of network error occurred which prevented the media from being successfully fetched, despite having previously been available.", + "errorNotSupported": "The media or media provider object is not supported." + }, + "homeButton": "Go home", + "text": "There was an error trying to play the media. Please try again.", + "title": "Failed to play video!" + }, + "scraping": { + "items": { + "failure": "Error occurred", + "notFound": "Doesn't have the video", + "pending": "Checking for videos..." + }, + "notFound": { + "badge": "Not found", + "detailsButton": "Show details", + "homeButton": "Go home", + "text": "We have searched through our providers and cannot find the media you are looking for! We do not host the media and have no control over what is available. Please click 'Show details' below for more details.", + "title": "We couldn't find that" + } + }, + "time": { + "regular": "{{timeWatched}} / {{duration}}", + "remaining": "{{timeLeft}} left • Finish at {{timeFinished, datetime}}", + "shortRegular": "{{timeWatched}}", + "shortRemaining": "-{{timeLeft}}" + } + }, + "screens": { + "dmca": { + "text": "Welcome to sudo-flix's DMCA contact page! We respect intellectual property rights and want to address any copyright concerns swiftly. If you believe your copyrighted work has been improperly used on our platform, please send a detailed DMCA notice to the email below. Please include a description of the copyrighted material, your contact details, and a statement of good faith belief. We're committed to resolving these matters promptly and appreciate your cooperation in keeping sudo-flix a place that respects creativity and copyrights.", + "title": "DMCA" + }, + "loadingApp": "Loading application", + "loadingUser": "Loading your profile", + "loadingUserError": { + "logout": "Logout", + "reset": "Reset custom server", + "text": "Failed to load your profile", + "textWithReset": "Failed to load your profile from your custom server, want to reset back to the default server?" + }, + "migration": { + "failed": "Failed to migrate your data.", + "inProgress": "Please hold, we are migrating your data. This shouldn't take long." + } + }, + "settings": { + "account": { + "accountDetails": { + "deviceNameLabel": "Device name", + "deviceNamePlaceholder": "Personal phone", + "editProfile": "Edit", + "logoutButton": "Log out" + }, + "actions": { + "delete": { + "button": "Delete account", + "confirmButton": "Delete account", + "confirmDescription": "Are you sure you want to delete your account? All your data will be lost!", + "confirmTitle": "Are you sure?", + "text": "This action is irreversible. All data will be deleted and nothing can be recovered.", + "title": "Delete account" + }, + "title": "Actions" + }, + "devices": { + "deviceNameLabel": "Device name", + "failed": "Failed to load sessions", + "removeDevice": "Remove", + "title": "Devices" + }, + "profile": { + "finish": "Finish editing", + "firstColor": "Profile color one", + "secondColor": "Profile color two", + "title": "Edit profile picture", + "userIcon": "User icon" + }, + "register": { + "cta": "Get started", + "text": "Share your watch progress between devices and keep them synced.", + "title": "Sync to the cloud" + }, + "title": "Account" + }, + "appearance": { + "activeTheme": "Active", + "themes": { + "blue": "Blue", + "default": "Default", + "gray": "Gray", + "red": "Red", + "teal": "Teal" + }, + "title": "Appearance" + }, + "subtitles": { + "title": "Subtitles", + "previewQuote": "I must not fear. Fear is the mind-killer.", + "textSizeLabel": "Text size", + "backgroundLabel": "Background opacity", + "colorLabel": "Color" + }, + "connections": { + "setup": { + "errorStatus": { + "title": "Something needs your attention", + "description": "It seems that one or more items in this setup need your attention." + }, + "unsetStatus": { + "title": "You haven't gone through setup", + "description": "Please click the button to the right to start the setup process." + }, + "successStatus": { + "title": "Everything is set up!", + "description": "All things are in place for you to start watching your favourite media." + }, + "redoSetup": "Redo setup", + "doSetup": "Do setup", + "itemError": "There is something wrong with this setting. Go through setup again to fix it.", + "items": { + "extension": "Extension", + "proxy": "Custom proxy", + "default": "Default setup" + } + }, + "server": { + "description": "If you would like to connect to a custom backend to store your data, enable this and provide the URL. <0>Instructions.", + "label": "Custom server", + "urlLabel": "Custom server URL" + }, + "title": "Connections", + "workers": { + "addButton": "Add new worker", + "description": "To make the application function, all traffic is routed through proxies. Enable this if you want to bring your own workers. <0>Instructions.", + "emptyState": "No workers yet, add one below", + "label": "Use custom proxy workers", + "urlLabel": "Worker URLs", + "urlPlaceholder": "https://" + } + }, + "preferences": { + "language": "Application language", + "languageDescription": "Language applied to the entire application.", + "title": "Preferences", + "thumbnail": "Generate thumbnails", + "thumbnailDescription": "Most of the time, videos don't have thumbnails. You can enable this setting to generate them on the fly but they can make your video slower.", + "thumbnailLabel": "Generate thumbnails" + }, + "reset": "Reset", + "save": "Save", + "sidebar": { + "info": { + "appVersion": "App version", + "backendUrl": "Backend URL", + "backendVersion": "Backend version", + "hostname": "Hostname", + "insecure": "Insecure", + "notLoggedIn": "You are not logged in", + "secure": "Secure", + "title": "App information", + "unknownVersion": "Unknown", + "userId": "User ID" + } + }, + "unsaved": "You have unsaved changes" + }, + "onboarding": { + "start": { + "title": "Let's get you setup with sudo-flix", + "explainer": "To get the best streams possible. You will need to choose which streaming method you want to use.", + "options": { + "proxy": { + "quality": "Good quality", + "title": "Custom proxy", + "description": "Setup a proxy in just 5 minutes and gain access to great sources.", + "action": "Setup proxy" + }, + "extension": { + "quality": "Best quality", + "title": "Browser extension", + "description": "Install browser extension and gain access to the best sources.", + "action": "Install extension" + }, + "default": { + "text": "I don't want good quality streams,<0 /> <1>use the default setup" + } + } + }, + "proxy": { + "title": "Let's make a new proxy", + "explainer": "With the proxy method, you can get great quality streams by making a self-service proxy.", + "link": "Learn how to make a proxy", + "input": { + "label": "Proxy URL", + "placeholder": "https://", + "errorInvalidUrl": "Not a valid URL", + "errorConnection": "Could not connect to proxy", + "errorNotProxy": "Expected a proxy but got a website" + }, + "back": "Go back", + "submit": "Submit proxy" + }, + "extension": { + "title": "Let's start with an extension", + "explainer": "Using the browser extension, you can get the best streams we have to offer. With just a simple install.", + "explainerIos": "Unfortunately, the browser extension is not supported on IOS, Press Go back to choose another option.", + "extensionHelp": "If you've installed the extension but it's not detected. Open the extension through your browsers extension menu and follow the steps on screen.", + "notDetecting": "Installed on chrome but not showing up? Try reloading the page!", + "notDetectingAction": "Reload page", + "linkChrome": "Install Chrome extension", + "linkFirefox": "Install Firefox extension", + "back": "Go back", + "status": { + "loading": "Waiting for you to install the extension", + "disallowed": "Extension is not enabled for this page", + "disallowedAction": "Enable extension", + "failed": "Failed to request status", + "outdated": "Extension version too old", + "success": "Extension is working as expected!" + }, + "submit": "Continue" + }, + "defaultConfirm": { + "title": "Are you sure?", + "description": "The default setup does not have the best streams and can be unbearably slow.", + "cancel": "Cancel", + "confirm": "Use default setup" + } + } +} diff --git a/src/assets/locales/es.json b/src/assets/locales/es.json new file mode 100644 index 00000000..dfc0840f --- /dev/null +++ b/src/assets/locales/es.json @@ -0,0 +1,528 @@ +{ + "about": { + "description": "sudo-flix es una aplicación web que busca transmisiones en internet. El equipo tiene como objetivo un enfoque principalmente minimalista para consumir contenido.", + "faqTitle": "Preguntas frecuentes", + "q1": { + "body": "sudo-flix no aloja ningún contenido. Cuando haces clic en algo para ver, se busca en internet el medio seleccionado (En la pantalla de carga y en la pestaña 'fuentes de vídeo' puedes ver qué fuente estás utilizando). El contenido nunca se carga en sudo-flix, todo se realiza a través de este mecanismo de búsqueda.", + "title": "¿De dónde proviene el contenido?" + }, + "q2": { + "body": "No es posible solicitar una serie o película, sudo-flix no gestiona ningún contenido. Todo el contenido se ve a través de fuentes en internet.", + "title": "¿Dónde puedo solicitar una serie o película?" + }, + "q3": { + "body": "Nuestros resultados de búsqueda están alimentados por The Movie Database (TMDB) y se muestran independientemente de si nuestras fuentes realmente tienen el contenido.", + "title": "Los resultados de búsqueda muestran la serie o película, ¿por qué no puedo reproducirla?" + }, + "title": "Acerca de sudo-flix" + }, + "actions": { + "copied": "Copiado", + "copy": "Copiar" + }, + "auth": { + "createAccount": "¿Todavía no tienes una cuenta? <0>Crea una cuenta.", + "deviceNameLabel": "Nombre del dispositivo", + "deviceNamePlaceholder": "Teléfono personal", + "generate": { + "description": "Tu frase de contraseña actúa como tu nombre de usuario y contraseña. Asegúrate de mantenerlas seguras, ya que las necesitarás para iniciar sesión en tu cuenta", + "next": "He guardado mi frase de contraseña", + "passphraseFrameLabel": "Frase de contraseña", + "title": "Tu frase de contraseña" + }, + "hasAccount": "¿Ya tienes una cuenta? <0>Inicia sesión aquí.", + "login": { + "description": "Por favor, ingresa tu frase de contraseña para iniciar sesión en tu cuenta", + "deviceLengthError": "Por favor, ingresa un nombre de dispositivo", + "passphraseLabel": "Frase de contraseña de 12 palabras", + "passphrasePlaceholder": "Frase de contraseña", + "submit": "Iniciar sesión", + "title": "Inicia sesión en tu cuenta", + "validationError": "Contraseña incorrecta o incompleta" + }, + "register": { + "information": { + "color1": "Color de perfil uno", + "color2": "Color de perfil dos", + "header": "Ingresa un nombre para tu dispositivo, elige colores, y un ícono de usuario de tu elección", + "icon": "Ícono de usuario", + "next": "Siguiente", + "title": "Información de la cuenta" + } + }, + "trust": { + "failed": { + "text": "¿Lo configuraste correctamente?", + "title": "No se pudo conectar al servidor" + }, + "host": "Te estás conectando a <0>{{hostname}} - por favor, confirma si confías en este antes de crear una cuenta", + "no": "Regresar", + "title": "¿Confías en este servidor?", + "yes": "Confío en este servidor" + }, + "verify": { + "description": "Por favor, ingresa tu frase de contraseña anterior para confirmar que la has guardado y para crear tu cuenta", + "invalidData": "Los datos no son válidos", + "noMatch": "La frase de contraseña no coincide", + "passphraseLabel": "Tu frase de contraseña de 12 palabras", + "recaptchaFailed": "La validación de ReCaptcha falló", + "register": "Crear cuenta", + "title": "Confirma tu frase de contraseña" + } + }, + "errors": { + "badge": "Se descompuso", + "details": "Detalles del error", + "reloadPage": "Recargar la página", + "showError": "Mostrar detalles del error", + "title": "¡Encontramos un error!" + }, + "footer": { + "legal": { + "disclaimer": "Descargo de responsabilidad", + "disclaimerText": "sudo-flix no aloja ningún archivo, simplemente enlaza a servicios de terceros. Los problemas legales deben ser tratados con los proveedores de archivos y servicios. sudo-flix no se hace responsable de los archivos multimedia mostrados por los proveedores de vídeo." + }, + "links": { + "discord": "Discord", + "dmca": "DMCA", + "github": "GitHub" + }, + "tagline": "Ve tus series y películas favoritas con esta aplicación de transmisión de código abierto." + }, + "global": { + "name": "sudo-flix", + "pages": { + "about": "Acerca de", + "dmca": "DMCA", + "login": "Iniciar sesión", + "onboarding": "Configurar", + "pagetitle": "{{title}} - sudo-flix", + "register": "Registrarse", + "settings": "Configuración" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "Marcadores" + }, + "continueWatching": { + "sectionTitle": "Continuar viendo" + }, + "mediaList": { + "stopEditing": "Detener edición" + }, + "search": { + "allResults": "¡Eso es todo lo que tenemos!", + "failed": "¡Error al encontrar contenido, inténtalo de nuevo!", + "loading": "Cargando...", + "noResults": "¡No pudimos encontrar nada!", + "placeholder": "¿Qué te gustaría ver?", + "sectionTitle": "Resultados de búsqueda" + }, + "titles": { + "day": { + "default": "¿Qué te gustaría ver esta tarde?", + "extra": [ + "¿Te sientes aventurero? Jurassic Park podría ser la elección perfecta." + ] + }, + "morning": { + "default": "¿Qué te gustaría ver esta mañana?", + "extra": ["Escuché que “Antes del amanecer” es buena"] + }, + "night": { + "default": "¿Qué te gustaría ver esta noche?", + "extra": ["¿Cansado? Escuché que “El Exorcista” es buena."] + } + } + }, + "media": { + "episodeDisplay": "T{{season}} E{{episode}}", + "types": { + "movie": "Película", + "show": "Serie" + } + }, + "navigation": { + "banner": { + "offline": "Verifica tu conexión a internet" + }, + "menu": { + "about": "Acerca de nosotros", + "donation": "Donar", + "logout": "Cerrar sesión", + "register": "Sincronizar con la nube", + "settings": "Configuración", + "support": "Soporte" + } + }, + "notFound": { + "badge": "No encontrado", + "goHome": "Volver a inicio", + "message": "Buscamos en todas partes: debajo de los contenedores, en el armario, detrás del proxy, pero al final no pudimos encontrar la página que estás buscando.", + "title": "No se puede encontrar esa página" + }, + "onboarding": { + "defaultConfirm": { + "cancel": "Cancelar", + "confirm": "Usar configuración por defecto", + "description": "La configuración predeterminada no tiene las mejores transmisiones y puede ser insoportablemente lenta.", + "title": "Estás seguro?" + }, + "extension": { + "back": "Volver atrás", + "explainer": "Usando la extensión de navegador, puedes obtener las mejores transiciones que ofrecemos. Simplemente con una simple instalación.", + "extensionHelp": "Si has instalado la extensión pero no es detectada, abre la extensión desde la sección en el menú de extensiones y sigue los pasos de la pantalla.", + "status": { + "disallowed": "La extensión no está activada para esta página", + "disallowedAction": "Activar extensión", + "failed": "No se pudo solicitar el estado", + "loading": "Esperando que instales la extensión", + "outdated": "La versión de la extensión es muy antigua", + "success": "¡La extensión está funcionando como se esperaba!" + }, + "submit": "Continuar", + "title": "Vamos a empezar con la extensión" + }, + "proxy": { + "back": "Volver atrás", + "explainer": "Con el método de proxy, puede obtener una my buena calidad de las transmisiones creando un proxy propio.", + "input": { + "errorConnection": "No se pudo conectar al proxy", + "errorInvalidUrl": "URL no válida", + "errorNotProxy": "Esperaba un proxy pero obtuve un sitio web", + "label": "URL del Proxy", + "placeholder": "https://" + }, + "link": "Aprender a crear un proxy", + "submit": "Enviar proxy", + "title": "Vamos a crear un nuevo proxy" + }, + "start": { + "explainer": "Para conseguir las mejores transmisiones, necesitarás elegir que método de transmisión quieres usar.", + "options": { + "default": { + "text": "No quiero buena calidad en las transmisiones,<0 /> <1>usar la configuración por defecto" + }, + "extension": { + "action": "Instalar extensión", + "description": "Instala la extensión de navegador y gana acceso a las mejore fuentes.", + "quality": "La mejor calidad", + "title": "Extensión de navegador" + }, + "proxy": { + "action": "Configurar proxy", + "description": "Configura un proxy en tan solo 5 minutos y obtén acceso a buenas fuentes.", + "quality": "Buena calidad", + "title": "Proxy personalizado" + } + }, + "title": "Vamos a configurar sudo-flix" + } + }, + "overlays": { + "close": "Cerrar" + }, + "player": { + "back": { + "default": "Volver al inicio", + "short": "Volver" + }, + "casting": { + "enabled": "Transmitiendo a dispositivo..." + }, + "menus": { + "downloads": { + "disclaimer": "Las descargas se realizan directamente desde el proveedor. sudo-flix no tiene control sobre cómo se proporcionan las descargas.", + "downloadPlaylist": "Descargar lista de reproducción", + "downloadSubtitle": "Descargar subtítulo actual", + "downloadVideo": "Descargar vídeo", + "hlsDisclaimer": "Las descargas se realizan directamente del proveedor. sudo-flix no tiene control sobre cómo se proporcionan las descargas.

    Tenga en cuenta que está descargando una lista de reproducción HLS, dirigida a usuarios familiarizados con la transmisión multimedia avanzada.", + "onAndroid": { + "1": "Para descargar en Android, haz clic en el botón de descarga y luego, en la nueva página, mantén presionado el vídeo y selecciona guardar.", + "shortTitle": "Descargar / Android", + "title": "Descargando en Android" + }, + "onIos": { + "1": "Para descargar en iOS, haz clic en el botón de descarga y luego, en la nueva página, haz clic en , luego Guardar en archivos .", + "shortTitle": "Descargar / iOS", + "title": "Descargando en iOS" + }, + "onPc": { + "1": "En una PC, haz clic en el botón de descarga y luego, en la nueva página, haz clic derecho en el vídeo y selecciona Guardar vídeo como...", + "shortTitle": "Descargar / PC", + "title": "Descargando en PC" + }, + "title": "Descargar" + }, + "episodes": { + "button": "Episodios", + "emptyState": "No hay episodios en esta temporada, ¡Intenta más tarde!", + "episodeBadge": "E{{episode}}", + "loadingError": "Error al cargar la temporada", + "loadingList": "Cargando...", + "loadingTitle": "Cargando...", + "unairedEpisodes": "Uno o más episodios de esta temporada se han desactivado porque aún no se han emitido." + }, + "playback": { + "speedLabel": "Velocidad de reproducción", + "title": "Configuración de reproducción" + }, + "quality": { + "automaticLabel": "Calidad automática", + "hint": "Puedes intentar <0>cambiar de fuente para obtener diferentes opciones de calidad.", + "iosNoQuality": "Debido a limitaciones definidas por Apple, la selección de calidad no está disponible en iOS para esta fuente. Puedes intentar <0>cambiar a otra fuente para obtener diferentes opciones de calidad.", + "title": "Calidad" + }, + "settings": { + "downloadItem": "Descargar", + "enableSubtitles": "Habilitar subtítulos", + "experienceSection": "Experiencia de visualización", + "playbackItem": "Configuración de reproducción", + "qualityItem": "Calidad", + "sourceItem": "Fuentes de vídeo", + "subtitleItem": "Configuración de subtítulos", + "videoSection": "Configuración de vídeo" + }, + "sources": { + "failed": { + "text": "Se produjo un error al intentar encontrar vídeos, por favor intenta con una fuente diferente.", + "title": "Error al obtener" + }, + "noEmbeds": { + "text": "No pudimos encontrar ninguna embed, por favor intenta con una fuente diferente.", + "title": "No se encontraron embeds" + }, + "noStream": { + "text": "Esta fuente no tiene transmisiones para esta película o serie.", + "title": "Sin transmisión" + }, + "title": "Fuentes", + "unknownOption": "Desconocida" + }, + "subtitles": { + "customChoice": "Seleccionar subtítulo del archivo", + "customizeLabel": "Personalizar", + "offChoice": "Apagado", + "settings": { + "backlink": "Subtítulos personalizados", + "delay": "Retraso de subtítulos", + "fixCapitals": "Arreglar capitalización" + }, + "title": "Subtítulos", + "unknownLanguage": "Desconocido" + } + }, + "metadata": { + "api": { + "text": "No ha sido posible cargar la metadata de la API, por favor, comprueba tu conexión a internet.", + "title": "No ha sido posible cargar los metadatos de la API" + }, + "dmca": { + "badge": "Eliminado", + "text": "Este contenido no va a estar disponible debido a un aviso de eliminación o un reclamo de derechos de autor.", + "title": "El contenido ha sido eliminado" + }, + "extensionPermission": { + "badge": "Permisos insuficientes", + "button": "Usar extensión", + "text": "Tienes la extensión de navegador, pero necesitamos tu permiso para empezar a usarla.", + "title": "Configura la extensión" + }, + "failed": { + "badge": "Error", + "homeButton": "Ir al inicio", + "text": "No se pudieron cargar los metadatos del contenido de TMDB. Por favor, verifica si TMDB está caído o bloqueado en tu conexión a internet.", + "title": "Error al cargar los metadatos" + }, + "notFound": { + "badge": "No encontrado", + "homeButton": "Volver al inicio", + "text": "No pudimos encontrar el contenido que solicitaste. Ya sea que se haya eliminado o se haya modificado la URL.", + "title": "No se pudo encontrar ese contenido." + } + }, + "nextEpisode": { + "cancel": "Cancelar", + "next": "Siguiente episodio" + }, + "playbackError": { + "badge": "Error de reproducción", + "errors": { + "errorAborted": "La obtención del contenido fue cancelada por solicitud del usuario.", + "errorDecode": "A pesar de haber sido determinado previamente como utilizable, se produjo un error al intentar decodificar el recurso del contenido, lo que resultó en un error.", + "errorGenericMedia": "Se produjo un error desconocido en el contenido.", + "errorNetwork": "Se produjo un error de red que impidió obtener el contenido de manera exitosa, a pesar de haber estado disponible anteriormente.", + "errorNotSupported": "El contenido o el proveedor del contenido no es compatible." + }, + "homeButton": "Ir al inicio", + "text": "Se produjo un error al intentar reproducir el contenido. Por favor, inténtalo de nuevo.", + "title": "¡No se pudo reproducir el vídeo!" + }, + "scraping": { + "items": { + "failure": "Ocurrió un error", + "notFound": "No tiene el vídeo", + "pending": "Verificando vídeos..." + }, + "notFound": { + "badge": "No encontrado", + "detailsButton": "Mostrar detalles", + "homeButton": "Ir al inicio", + "text": "Hemos buscado en nuestros proveedores y no podemos encontrar el contenido que estás buscando. No alojamos el contenido y no tenemos control sobre lo que está disponible. Haz clic en 'Mostrar detalles' a continuación para obtener más información.", + "title": "No pudimos encontrar eso" + } + }, + "time": { + "regular": "{{timeWatched}} / {{duration}}", + "remaining": "{{timeLeft}} restante • Finaliza a las {{timeFinished, datetime}}", + "shortRegular": "{{timeWatched}}", + "shortRemaining": "-{{timeLeft}}" + }, + "turnstile": { + "description": "Por favor, confirma que eres humano completando el Captcha. Esto es para mantener sudo-flix seguro!", + "error": "Ha habido un error al verificar tu humanidad. Por favor, prueba de nuevo.", + "title": "Necesitamos verificar que eres humano.", + "verifyingHumanity": "Verificando tu hunanidad…" + } + }, + "screens": { + "dmca": { + "text": "¡Bienvenido a la página de contacto DMCA de sudo-flix! Respetamos los derechos de propiedad intelectual y queremos abordar cualquier problema de derechos de autor de manera rápida. Si cree que su trabajo con derechos de autor se ha utilizado incorrectamente en nuestra plataforma, envíe un aviso DMCA detallado al correo electrónico que se muestra a continuación. Incluya una descripción del material con derechos de autor, sus datos de contacto y una declaración de buena fe. Estamos comprometidos a resolver estos asuntos de manera pronta y agradecemos su cooperación para mantener a sudo-flix como un lugar que respeta la creatividad y los derechos de autor.", + "title": "DMCA" + }, + "loadingApp": "Cargando la aplicación", + "loadingUser": "Cargando tu perfil", + "loadingUserError": { + "logout": "Cerrar sesión", + "reset": "Restablecer servidor personalizado", + "text": "Error al cargar tu perfil", + "textWithReset": "Error al cargar tu perfil desde tu servidor personalizado, ¿Quieres restablecerlo al servidor predeterminado?" + }, + "migration": { + "failed": "Error al migrar tus datos.", + "inProgress": "Por favor espera, estamos migrando tus datos. Esto no debería tomar mucho tiempo." + } + }, + "settings": { + "account": { + "accountDetails": { + "deviceNameLabel": "Nombre del dispositivo", + "deviceNamePlaceholder": "Teléfono personal", + "editProfile": "Editar", + "logoutButton": "Cerrar sesión" + }, + "actions": { + "delete": { + "button": "Eliminar cuenta", + "confirmButton": "Eliminar cuenta", + "confirmDescription": "¿Estás seguro de que quieres eliminar tu cuenta? ¡Todos tus datos se perderán!", + "confirmTitle": "¿Estás seguro?", + "text": "Esta acción es irreversible. Todos los datos se eliminarán y no se podrán recuperar.", + "title": "Eliminar cuenta" + }, + "title": "Acciones" + }, + "devices": { + "deviceNameLabel": "Nombre del dispositivo", + "failed": "Error al cargar las sesiones", + "removeDevice": "Eliminar", + "title": "Dispositivos" + }, + "profile": { + "finish": "Finalizar edición", + "firstColor": "Color de perfil uno", + "secondColor": "Color de perfil dos", + "title": "Editar imagen de perfil", + "userIcon": "Icono de usuario" + }, + "register": { + "cta": "Empezar", + "text": "Comparte tu progreso de visualización entre dispositivos y manténlos sincronizados.", + "title": "Sincronizar con la nube" + }, + "title": "Cuenta" + }, + "appearance": { + "activeTheme": "Activo", + "themes": { + "blue": "Azul", + "default": "Predeterminado", + "gray": "Gris", + "red": "Rojo", + "teal": "Turquesa" + }, + "title": "Apariencia" + }, + "connections": { + "server": { + "description": "Si deseas conectarte a un backend personalizado para almacenar tus datos, habilita esto y proporciona la URL. <0>Instrucciones.", + "label": "Servidor personalizado", + "urlLabel": "URL del servidor personalizado" + }, + "setup": { + "doSetup": "Configurar", + "errorStatus": { + "description": "Parece que hay uno o más items en esta configuración que requieren de tu atención.", + "title": "Algo necesita de tu atención" + }, + "itemError": "Hay algo que no fue bien con esta configuración. Ve otra vez a la configuración para solucionarlo.", + "items": { + "default": "Configuración por defecto", + "extension": "Extensión", + "proxy": "Proxy personalizado" + }, + "redoSetup": "Rehacer configuración", + "successStatus": { + "description": "Todo lo necesario está en su sitio para que empieces a ver tu contenido favorito.", + "title": "Todo está configurado!" + }, + "unsetStatus": { + "description": "Haga clic en el botón a la derecha para iniciar el proceso de configuración.", + "title": "No has pasado por la configuración" + } + }, + "title": "Conexiones", + "workers": { + "addButton": "Agregar nuevo worker", + "description": "Para que la aplicación funcione, todo el tráfico se enruta a través de proxies. Habilita esto si quieres usar tus propios workers. <0>Instrucciones.", + "emptyState": "Aún no hay workers, agrega uno a continuación", + "label": "Usar proxy workers personalizados", + "urlLabel": "URL de los workers", + "urlPlaceholder": "https://" + } + }, + "preferences": { + "language": "Idioma de la aplicación", + "languageDescription": "Idioma aplicado a toda la aplicación.", + "thumbnail": "Generar miniaturas", + "thumbnailDescription": "La mayor parte del tiempo, los videos no tienen miniaturas. Puedes activar esta configuración para generarlas sobre la marcha, pero pueden realentizar tu video.", + "thumbnailLabel": "Generar miniaturas", + "title": "Preferencias" + }, + "reset": "Restablecer", + "save": "Guardar", + "sidebar": { + "info": { + "appVersion": "Versión de la aplicación", + "backendUrl": "URL del backend", + "backendVersion": "Versión del backend", + "hostname": "Nombre de host", + "insecure": "No seguro", + "notLoggedIn": "No has iniciado sesión", + "secure": "Seguro", + "title": "Información de la aplicación", + "unknownVersion": "Desconocida", + "userId": "ID de usuario" + } + }, + "subtitles": { + "backgroundLabel": "Opacidad del fondo", + "colorLabel": "Color", + "previewQuote": "No debo temer. El miedo es el asesino de la mente.", + "textSizeLabel": "Tamaño del texto", + "title": "Subtítulos" + }, + "unsaved": "Tienes cambios sin guardar" + } +} diff --git a/src/assets/locales/et.json b/src/assets/locales/et.json new file mode 100644 index 00000000..25dc25d3 --- /dev/null +++ b/src/assets/locales/et.json @@ -0,0 +1,428 @@ +{ + "about": { + "description": "sudo-flix on veebirakendus, mis otsib internetti voogude jaoks. Meeskonna eesmärk on enamasti minimalistlik lähenemine sisu tarbimisele.", + "faqTitle": "Tihti küsitud küsimused", + "q1": { + "body": "sudo-flix ei hoiusta enda sisu. Kui klõpsate, et midagi vaadata, otsitakse valitud meediat internetist (laadimisekraanil ja vahekaardil \"videoallikad\" näete, millist allikat te kasutate). Meediat ei lae sudo-flix kunagi üles, kõik toimub selle otsingumehhanismi kaudu.", + "title": "Kust tuleb meie sisu?" + }, + "q2": { + "body": "Saadet või filmi ei ole võimalik taotelda, sudo-flix ei halda mingit sisu. Kogu sisu vaadatakse interneti allikate kaudu.", + "title": "Kust ma saan kindlat saadet või filmi paluda?" + }, + "q3": { + "body": "Meie otsingutulemusi toetab The Movie Database (TMDB) ja need kuvatakse sõltumata sellest, kas meie allikates on sisu tegelikult olemas.", + "title": "Otsingutulemustes kuvatakse saade või film. Miks ma ei saa seda esitada?" + }, + "title": "sudo-flix'i kohta" + }, + "actions": { + "copied": "Kopeeritud", + "copy": "Kopeeri" + }, + "auth": { + "createAccount": "Ei ole kontot veel?<0>Loo konto.", + "deviceNameLabel": "Seadme nimi", + "deviceNamePlaceholder": "Isiklik telefon", + "generate": { + "description": "Teie paroolifraas toimib teie kasutajanime ja paroolina. Veenduge, et see oleks ohutus kohas, kuna peate kasutama seda, et logida oma kontosse sisse", + "next": "Olen salvestanud oma paroolifraasi", + "passphraseFrameLabel": "Paroolifraas", + "title": "Sinu paroolifraas" + }, + "hasAccount": "On juba konto? <0>Logi sisse.", + "login": { + "description": "Palun sisestage paroolifraas, et logida kontosse sisse", + "deviceLengthError": "Palun sisesta seadme nimi", + "passphraseLabel": "12-Sõnaline paroolifraas", + "passphrasePlaceholder": "Paroolifraas", + "submit": "Logi sisse", + "title": "Logi sisse oma kontosse", + "validationError": "Vale vōi mittetäielik paroolifraas" + }, + "register": { + "information": { + "color1": "Profiili värv üks", + "color2": "Profiili värv kaks", + "header": "Sisestage oma seadme nimi ja valige värvid ning kasutajaikoon", + "icon": "Kasutaja ikoon", + "next": "Järgmine", + "title": "Kontoteave" + } + }, + "trust": { + "failed": { + "text": "Kas sa seadistasid selle õigesti?", + "title": "Serveriga ühenduse loomine ebaõnnestus" + }, + "host": "Ühendate <0>{{hostname}} - enne konto tegemist kinnitage, et usaldate seda", + "no": "Tagasi", + "title": "Kas usaldate seda serverit?", + "yes": "Usaldan seda serverit" + }, + "verify": { + "description": "Palun sisestage oma paroolifraas, et kinnitada, et olete selle salvestanud ja luua oma konto", + "invalidData": "Andmed ei kehti", + "noMatch": "Paroolifraas ei klapi", + "passphraseLabel": "Sinu 12-sõnaline paroolifraas", + "recaptchaFailed": "ReCaptcha valideerimine ebaõnnestua", + "register": "Loo konto", + "title": "Kinnita oma paroolifraas" + } + }, + "errors": { + "badge": "Läks katki", + "details": "Vea üksikasjad", + "reloadPage": "Värskenda leht", + "showError": "Näita vea üksikasju", + "title": "Tekkis viga!" + }, + "footer": { + "legal": { + "disclaimer": "Lahtiütlemine", + "disclaimerText": "sudo-flix ei hoiusta ühtegi faili, vaid ainult lingib kolmandate osapoolte teenustele. Juriidilised küsimused tuleks lahendada failihostide ja teenusepakkujatega. sudo-flix ei vastuta videopakkujate poolt näidatud meediafailide eest." + }, + "links": { + "discord": "Discord", + "dmca": "DMCA", + "github": "GitHub" + }, + "tagline": "Vaadake selle avatud lähtekoodiga voogesituse rakendusega oma lemmiksaateid ja -filme." + }, + "global": { + "name": "sudo-flix", + "pages": { + "about": "Meist", + "dmca": "DMCA", + "login": "Logi sisse", + "pagetitle": "{{title}} - sudo-flix", + "register": "Registreeri", + "settings": "Sätted" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "Järjehoidjad" + }, + "continueWatching": { + "sectionTitle": "Jätka vaatamist" + }, + "mediaList": { + "stopEditing": "Lõpeta redigeerimine" + }, + "search": { + "allResults": "See on kõik, mis meil on!", + "failed": "Meedia leidmine ebaõnnestus, proovige uuesti!", + "loading": "Laadimine....", + "noResults": "Me ei leidnud midagi!", + "placeholder": "Mida tahate vaadata?", + "sectionTitle": "Otsingutulemused" + }, + "titles": { + "day": { + "default": "Mida te soovite täna pärastlõunal vaadata?", + "extra": [ + "Kas tunnete end seiklushimulisena? Jurassic Park võib olla ideaalne valik." + ] + }, + "morning": { + "default": "Mida te soovite täna hommikul vaadata?", + "extra": ["Ma kuulsin, et Before Sunrise on hea"] + }, + "night": { + "default": "Mida te soovite täna õhtul vaadata?", + "extra": ["Väsinud? Olen kuulnud, et The Exorcist on hea."] + } + } + }, + "media": { + "episodeDisplay": "S{{season}} E{{episode}}", + "types": { + "movie": "Film", + "show": "Saade" + } + }, + "navigation": { + "banner": { + "offline": "Kontrollige oma Interneti-ühendust" + }, + "menu": { + "about": "Meie kohta", + "donation": "Anneta", + "logout": "Logi välja", + "register": "Sünkrooni pilvega", + "settings": "Sätted", + "support": "Abi" + } + }, + "notFound": { + "badge": "Ei leitud", + "goHome": "Tagasi koju", + "message": "Otsisime kõikjalt: prügikastide alt, kapist, proksi tagant, kuid lõpuks ei leidnud otsitud lehte.", + "title": "Ei leidnud seda lehekülge" + }, + "overlays": { + "close": "Sulge" + }, + "player": { + "back": { + "default": "Tagasi koju", + "short": "Tagasi" + }, + "casting": { + "enabled": "Seadmesse ülekandmine..." + }, + "menus": { + "downloads": { + "disclaimer": "Allalaadimine toimub otse teenusepakkujalt. sudo-flix ei saa kontrollida, kuidas allalaadimine toimub.", + "downloadPlaylist": "Laadige esitusloend alla", + "downloadSubtitle": "Laadige alla praegune subtiiter", + "downloadVideo": "Lae alla video", + "hlsDisclaimer": "Allalaadimised võetakse otse teenusepakkujalt. sudo-flix ei kontrolli, kuidas allalaadimisi pakutakse. Pange tähele, et laadite alla HLS-i esitusloendit, see on mõeldud kasutajatele, kes on tuttavad multimeediumi voogesitusega.", + "onAndroid": { + "1": "Et allalaadida Androidi telefonil, vajuta allalaadimise nupule, siis uuel leheküljel vajuta ja hoia video peal, siis vali salvesta.", + "shortTitle": "Allalaadimine / Android", + "title": "Androidil allalaadimine" + }, + "onIos": { + "1": "Et allalaadida iOS telefonil, vajuta allalaadimise nupule, siis uuel leheküljel vajuta , siis Salvesta failidesse .", + "shortTitle": "Allalaadimine / iOS", + "title": "iOSil allalaadimine" + }, + "onPc": { + "1": "Klõpsake arvutis allalaadimise nupule, seejärel klõpsake uuel lehel parema klõpsuga videol ja valige Salvesta video", + "shortTitle": "Allalaadimine / Arvutis", + "title": "Arvutis allalaadimine" + }, + "title": "Lae alla" + }, + "episodes": { + "button": "Episoodid", + "emptyState": "Selles hooajas puuduvad episoodid, vaadake hiljem uuesti!", + "episodeBadge": "E{{episode}}", + "loadingError": "Hooaja laadimine ebaōnnestus", + "loadingList": "Laadimine...", + "loadingTitle": "Laadimine...", + "unairedEpisodes": "Üks või mitu selle hooaja episoodi on välja lülitatud, sest neid ei ole veel eetris olnud." + }, + "playback": { + "speedLabel": "Taasesituse kiirus", + "title": "Taasesituse sätted" + }, + "quality": { + "automaticLabel": "Automaatne kvaliteet", + "hint": "Võid proovida <0>vahetada allikat, et saada teisi kvaliteedi valikuid.", + "iosNoQuality": "Apple'i poolt määratletud piirangute tõttu ei ole sellel allikal kvaliteedivalik saadaval. Te võite proovida <0>vahetada teisele allikale, et saada erinevaid kvaliteedivalikuid.", + "title": "Kvaliteet" + }, + "settings": { + "downloadItem": "Lae alla", + "enableSubtitles": "Luba Subtiitrid", + "experienceSection": "Vaatamise kogemus", + "playbackItem": "Taasesituse sätted", + "qualityItem": "Kvaliteet", + "sourceItem": "Video allikad", + "subtitleItem": "Subtiitri sätted", + "videoSection": "Video sätted" + }, + "sources": { + "failed": { + "text": "Videote leidmisel tekkis viga, palun proovige mõnda muud allikat.", + "title": "Ei õnnestunud kraapida" + }, + "noEmbeds": { + "text": "Me ei leidnud ühtegi manust, proovige twist allikat.", + "title": "Ei leitud manuseid" + }, + "noStream": { + "text": "Sellel allikal ei ole selle filmi või seriaali jaoks ühtegi voogedastust.", + "title": "Puudub voog" + }, + "title": "Allikad", + "unknownOption": "Teadmata" + }, + "subtitles": { + "customChoice": "Vali subtiitrid failist", + "customizeLabel": "Kohanda", + "offChoice": "Välja", + "settings": { + "backlink": "Kohandatud subtiitrid", + "delay": "Subtiitrite viivitus", + "fixCapitals": "Parandage suurtähtede kasutamine" + }, + "title": "Subtiitrid", + "unknownLanguage": "Tundmatu" + } + }, + "metadata": { + "api": { + "text": "API metaandmete laadimine ebaõnnestus, palun kontrollige oma internetiühendust.", + "title": "API metaandmete laadimine ebaõnnestus" + }, + "failed": { + "badge": "Ebaōnnestus", + "homeButton": "Mine koju", + "text": "Meedia metaandmeid ei õnnestunud TMDB-st laadida. Palun kontrollige, kas TMDB on maas või see on teie internetiühenduses blokeeritud.", + "title": "Metaandmete laadimine ebaõnnestus" + }, + "notFound": { + "badge": "Ei leitud", + "homeButton": "Tagasi koju", + "text": "Me ei leidnud teie soovitud meediat. Kas see on eemaldatud või olete URL-i muutnud.", + "title": "Ei leidnud seda meediat." + } + }, + "nextEpisode": { + "cancel": "Tühista", + "next": "Järgmine episood" + }, + "playbackError": { + "badge": "Taasesituse viga", + "errors": { + "errorAborted": "Meedia kättesaamine katkestati kasutaja taotlusel.", + "errorDecode": "Vaatamata sellele, et eelnevalt oli kindlaks tehtud, et see on kasutatav, tekkis viga meediaressursi dekodeerimisel, mille tulemuseks oli viga.", + "errorGenericMedia": "Tekkis tundmatu meediaviga.", + "errorNetwork": "Tekkis võrguviga, mis takistas meedia edukat kättesaamist, kuigi see oli varem saadaval.", + "errorNotSupported": "Meedia või meediapakkuja objekt ei ole toetatud." + }, + "homeButton": "Mine koju", + "text": "Tekkis viga meedia mängimisel. Palun proovige uuesti.", + "title": "Video mängimine ebaōnnestus!" + }, + "scraping": { + "items": { + "failure": "Tekkis viga", + "notFound": "Ei ole videot", + "pending": "Otsin videoid..." + }, + "notFound": { + "badge": "Ei leitud", + "detailsButton": "Näita üksikasju", + "homeButton": "Mine koju", + "text": "Me otsisime läbi meie teenusepakkujad ja ei leidnud teie poolt otsitud meediat! Me ei halda meediat ja meil ei ole kontrolli selle üle, mis on saadaval. Täpsema teabe saamiseks klõpsake allpool nupule \"Näita üksikasju\".", + "title": "Me ei leidnud seda" + } + }, + "time": { + "regular": "{{timeWatched}} / {{duration}}", + "remaining": "{{timeLeft}} alles • Lõppeb {{timeFinished, datetime}}", + "shortRegular": "{{timeWatched}}", + "shortRemaining": "-{{timeLeft}}" + }, + "turnstile": { + "description": "Palun kinnitage, et olete inimene, täites paremal asuva Captcha. See on selleks, et hoida sudo-flix turvalisena!", + "error": "Ei õnnestunud kontrollida teie inimlikkust. Palun proovige uuesti.", + "title": "Me peame kontrollima, et te olete inimene.", + "verifyingHumanity": "Kontrollime kas olete robot..." + } + }, + "screens": { + "dmca": { + "text": "Tere tulemast sudo-flixi DMCA kontaktilehele! Me austame intellektuaalomandi õigusi ja soovime kiiresti lahendada kõik autoriõigusega seotud probleemid. Kui usute, et teie autoriõigusega kaitstud tööd on meie platvormil vääralt kasutatud, saatke palun üksikasjalik DMCA-teade alljärgnevale e-posti aadressile. Palun lisage autoriõigusega kaitstud materjali kirjeldus, oma kontaktandmed ja avaldus heauskse veendumuse kohta. Oleme pühendunud nende küsimuste kiirele lahendamisele ja hindame teie koostööd, et sudo-flix oleks koht, kus austatakse loovust ja autoriõigusi.", + "title": "DMCA" + }, + "loadingApp": "Rakenduse laadimine", + "loadingUser": "Teie profiili laadimine", + "loadingUserError": { + "logout": "Logi välja", + "reset": "Lähtestage kohandatud server", + "text": "Profiili laadimine ebaōnnestus", + "textWithReset": "Profiili laadimine kohandatud serverist ebaõnnestus. Kas soovite lähtestada vaikeserverile?" + }, + "migration": { + "failed": "Teie andmete üleviimine ebaõnnestus.", + "inProgress": "Palun oodake, me viime teie andmeid üle. See ei tohiks kaua aega võtta." + } + }, + "settings": { + "account": { + "accountDetails": { + "deviceNameLabel": "Seadme nimi", + "deviceNamePlaceholder": "Isiklik telefon", + "editProfile": "Muuda", + "logoutButton": "Logi välja" + }, + "actions": { + "delete": { + "button": "Kustuta konto", + "confirmButton": "Kustuta konto", + "confirmDescription": "Kas olete kindel, et soovite oma konto kustutada? Kõik teie andmed lähevad kaotsi!", + "confirmTitle": "Oled sa kindel?", + "text": "See toiming on pöördumatu. Kõik andmed kustutatakse ja midagi ei saa taastada.", + "title": "Kustuta konto" + }, + "title": "Tegevused" + }, + "devices": { + "deviceNameLabel": "Seadme nimi", + "failed": "Seansside laadimine ebaõnnestus", + "removeDevice": "Eemalda", + "title": "Seadmed" + }, + "profile": { + "finish": "Lõpeta redigeerimine", + "firstColor": "Profiili värv üks", + "secondColor": "Profiili värv kaks", + "title": "Redigeeri profiilipilti", + "userIcon": "Kasutaja ikoon" + }, + "register": { + "cta": "Alustama", + "text": "Jagage oma vaatamise edenemist seadmete vahel ja hoidke neid sünkroonituna.", + "title": "Sünkrooni pilvega" + }, + "title": "Konto" + }, + "appearance": { + "activeTheme": "Aktiivne", + "themes": { + "blue": "Sinine", + "default": "Vaikimisi", + "gray": "Hall", + "red": "Punane", + "teal": "Tumesinine" + }, + "title": "Välimus" + }, + "connections": { + "server": { + "description": "Kui soovite kohandatud backend'i kasutada oma andmete hoidmiseks, siis lubage see ja varustage URL.", + "label": "Kohandatud server", + "urlLabel": "Kohandatud serveri URL" + }, + "title": "Ühendused", + "workers": { + "addButton": "Lisa uus töötaja", + "description": "Rakenduse toimimiseks suunatakse kogu liiklus puhverserverite kaudu. Lubage see, kui soovite oma puhverserverit kasutada.", + "emptyState": "Töötajaid pole veel, lisage üks", + "label": "Kasutage kohandatud puhverserveri töötajaid", + "urlLabel": "Töötajate URL-id", + "urlPlaceholder": "https://" + } + }, + "reset": "Lähtesta", + "save": "Salvesta", + "sidebar": { + "info": { + "appVersion": "Rakenduse versioon", + "backendUrl": "Backend'i URL", + "backendVersion": "Backend'i versioon", + "hostname": "Hostinimi", + "insecure": "Ebakindel", + "notLoggedIn": "Sa pole sisse loginud", + "secure": "Turvaline", + "title": "Rakenduse teave", + "unknownVersion": "Teadmatu", + "userId": "Kasutaja ID" + } + }, + "subtitles": { + "backgroundLabel": "Tausta läbipaistmatus", + "colorLabel": "Värv", + "previewQuote": "Ma ei tohi karta. Hirm on meelemõrvar.", + "textSizeLabel": "Teksti suurus", + "title": "Subtiitrid" + }, + "unsaved": "Teil on salvestamata muudatusi" + } +} diff --git a/src/assets/locales/fa.json b/src/assets/locales/fa.json new file mode 100644 index 00000000..09d837d2 --- /dev/null +++ b/src/assets/locales/fa.json @@ -0,0 +1,530 @@ +{ + "about": { + "description": "مووی-وب یک برنامه تحت وب است که در اینترنت به دنبال استریم ها می‌گردد. هدف تیم تجربه‌ای ساده برای استفاده از محتوا است.", + "faqTitle": "سوالات متداول", + "q1": { + "body": "مووی-وب هیچ محتوایی را میزبانی نمی‌کند. وقتی برای تماشا روی یک چیز کلیک می‌کنید، ما در اینترنت به دنبال محتوای مورد نظر شما می‌گردیم (در صفحه دانلود و در تب 'منابع ویدیو' می‌توانید ببینید که از کدام منبع استفاده می‌کنید). محتوا هرگز در مووی-وب آپلود نمی‌شود، همه چیز از طریق این مکانیزم جستجو اتفاق می‌افتد.", + "title": "فیلم ها از کجا می‌آیند؟" + }, + "q2": { + "body": "از آنجایی که محتوا ها توسط مووی-وب مدیریت نمی‌شوند، امکان درخواست فیلم وجود ندارد. تمام محتوا از طریق منابع در اینترنت به شما نشان داده می‌شوند.", + "title": "از کجا می‌توانم درخواست فیلم کنم؟" + }, + "q3": { + "body": "نتایج جستجوی ما توسط پایگاه داده فیلم (TMDB) تامین می‌شوند و نمایش داده می‌شوند، بدون اینکه مهم باشد که منابع ما واقعاً محتوا را داشته باشند یا خیر.", + "title": "نتایج جستجو وجود دارد، اما چرا فیلم پخش نمی‌شود؟" + }, + "title": "درباره مووی-وب" + }, + "actions": { + "copied": "کپی شد", + "copy": "کپی" + }, + "auth": { + "createAccount": "هنوز حساب کاربری ندارید؟ <0>ثبت نام کنید.", + "deviceNameLabel": "نام دستگاه", + "deviceNamePlaceholder": "تلفن شخصی", + "generate": { + "description": "جمله امنیتی شما به عنوان نام کاربری و رمز عبور عمل می‌کند. آن را در جایی ذخیره کنید چون برای ورود به آن نیاز دارید", + "next": "جمله امنیتی خود را ذخیره کرده‌ام", + "passphraseFrameLabel": "جمله امنیتی", + "title": "جمله امنیتی شما" + }, + "hasAccount": "حساب کاربری دارید؟ <0>اینجا وارد شوید.", + "login": { + "description": "لطفاً جمله امنیتی خود را وارد کنید تا وارد حساب کاربری شوید", + "deviceLengthError": "لطفا نامی برای دستگاه انتخاب کنید", + "passphraseLabel": "جمله امنیتی 12 کلمه‌ای", + "passphrasePlaceholder": "جمله امنیتی", + "submit": "ورود", + "title": "ورود به حساب کاربری", + "validationError": "جمله امنیتی نادرست یا ناقص است" + }, + "register": { + "information": { + "color1": "رنگ پروفایل اول", + "color2": "رنگ پروفایل دوم", + "header": "نام دستگاه، رنگ‌ها و نماد کاربری مورد نظر خود را انتخاب کنید", + "icon": "نماد کاربری", + "next": "بعدی", + "title": "اطلاعات حساب کاربری" + } + }, + "trust": { + "failed": { + "text": "آیا از صحت تنظیمات مطمئن هستید؟", + "title": "مشکلی در ارتباط با سرور رخ داده" + }, + "host": "شما در حال اتصال به <0>{{hostname}} هستید - لطفا قبل از ایجاد حساب کاربری خود از اعتماد به آن اطمینان حاصل کنید", + "no": "بازگشت", + "title": "آیا به این سرور اعتماد دارید؟", + "yes": "بله اعتماد دارم" + }, + "verify": { + "description": "لطفا جمله امنیتی که به شما داده شده را مجدد وارد تا کنید تا حساب کاربری ساخته شود", + "invalidData": "اطلاعات معتبر نیست", + "noMatch": "جمله امنیتی مطابقت ندارد", + "passphraseLabel": "عبارت عبور 12 کلمه ای شما", + "recaptchaFailed": "اعتبارسنجی ReCaptcha ناموفق بود", + "register": "ساخت حساب کاربری", + "title": "عبارت عبور خود را تایید کنید" + } + }, + "errors": { + "badge": "مشکلی پیش آمده", + "details": "جزئیات خطا", + "reloadPage": "صفحه را ریلود کنید", + "showError": "نمایش جزئیات خطا", + "title": "مشکلی پیش آمده!" + }, + "footer": { + "legal": { + "disclaimer": "سلب مسئولیت", + "disclaimerText": "مووی-وب هیچ فایلی را میزبانی نمی‌کند، صرفاً به سرویس‌های شخص ثالث لینک می‌دهد. مسائل قانونی باید با میزبان‌ها و ارائه‌دهندگان فایل مطرح شود. مووی-وب مسئولیتی در قبال هیچ فایل رسانه‌ای که توسط ارائه‌دهندگان ویدیو نشان داده می‌شود ندارد." + }, + "links": { + "discord": "دیسکورد", + "dmca": "DMCA", + "github": "گیت هاب" + }, + "tagline": "فیلم و سریال مورد علاقه‌تان را با این برنامه استریم منبع باز تماشا کنید." + }, + "global": { + "name": "مووی-وب", + "pages": { + "about": "درباره ما", + "dmca": "DMCA", + "login": "ورود", + "onboarding": "راه اندازی", + "pagetitle": "{{title}} - مووی-وب", + "register": "ثبت نام", + "settings": "تنظیمات" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "علاقه مندی ها" + }, + "continueWatching": { + "sectionTitle": "ادامه تماشا" + }, + "mediaList": { + "stopEditing": "توقف ویرایش" + }, + "search": { + "allResults": "همه چیزی بود که داشتیم!", + "failed": "چیزی پیدا نشد، دوباره تلاش کنید!", + "loading": "در حال بارگذاری...", + "noResults": "متاسفانه چیزی پیدا نکردیم!", + "placeholder": "چه می‌خواهید تماشا کنید؟", + "sectionTitle": "جست و جو نتایج" + }, + "titles": { + "day": { + "default": "امروز چه می‌خواهید تماشا کنید؟", + "extra": [ + "به دنبال ماجراجویی هستید؟ \"ژوراسیک پارک\" انتخابی عالی است." + ] + }, + "morning": { + "default": "امروز چه می‌خواهید تماشا کنید؟", + "extra": ["فیلم \"پیش از طلوع\" رو می‌توانم پیشنهاد کنم"] + }, + "night": { + "default": "امشب چه می‌خواهید تماشا کنید؟", + "extra": [ + "روز سختی را گذرانده اید؟ شنیده ام که \"جن گیر\" فیلم خوبی است." + ] + } + } + }, + "media": { + "episodeDisplay": "فصل {{season}} قسمت {{episode}}", + "types": { + "movie": "فیلم", + "show": "سریال" + } + }, + "navigation": { + "banner": { + "offline": "اتصال اینترنت خود را بررسی کنید" + }, + "menu": { + "about": "درباره ما", + "donation": "حمایت", + "logout": "خروج", + "register": "همگام سازی", + "settings": "تنظیمات", + "support": "پشتیبانی" + } + }, + "notFound": { + "badge": "پیدا نشد", + "goHome": "بازگشت به خانه", + "message": "همه جا را جستجو کردیم: زیر سطل‌ها، در کمد، پشت پروکسی، اما در نهایت نتوانستیم صفحه‌ای که به دنبال آن هستید را پیدا کنیم.", + "title": "نتواستیم صفحه را پیدا کنیم" + }, + "onboarding": { + "defaultConfirm": { + "cancel": "لغو کنید", + "confirm": "از تنظیمات پیش فرض استفاده کنید", + "description": "راه‌اندازی پیش‌فرض بهترین جریان‌ها را ندارد و می‌تواند به طور غیرقابل تحملی کند باشد.", + "title": "مطمئنی؟" + }, + "extension": { + "back": "برگرد", + "explainer": "با استفاده از افزونه مرورگر، می‌توانید بهترین جریان‌های ارائه شده را دریافت کنید. فقط با یک نصب ساده.", + "extensionHelp": "اگر افزونه را نصب کرده اید اما شناسایی نشده است. افزونه را از طریق منوی افزونه مرورگر خود باز کنید و مراحل روی صفحه را دنبال کنید.", + "status": { + "disallowed": "برنامه افزودنی برای این صفحه فعال نیست", + "disallowedAction": "افزونه را فعال کنید", + "failed": "درخواست وضعیت ناموفق بود", + "loading": "منتظر نصب افزونه هستیم", + "outdated": "نسخه افزونه خیلی قدیمی است", + "success": "برنامه افزودنی همانطور که انتظار می رود کار می کند!" + }, + "submit": "ادامه دهید", + "title": "بیایید با یک افزونه شروع کنیم" + }, + "proxy": { + "back": "برگرد", + "explainer": "با روش پروکسی می توانید با ساخت یک پراکسی سلف سرویس استریم های با کیفیت عالی دریافت کنید.", + "input": { + "errorConnection": "نمی توان به پروکسی وصل شد", + "errorInvalidUrl": "URL معتبر نیست", + "errorNotProxy": "انتظار یک پروکسی داشتم اما یک وب سایت دریافت کردم", + "label": "URL پروکسی", + "placeholder": "https://" + }, + "link": "آموزش ساخت پروکسی", + "submit": "پروکسی را ثبت کنید", + "title": "بیایید یک پروکسی جدید بسازیم" + }, + "start": { + "explainer": "برای دریافت بهترین جریان های ممکن شما باید انتخاب کنید که از کدام روش پخش جریانی استفاده کنید.", + "options": { + "default": { + "text": "من پخش جریانی با کیفیت خوب نمی‌خواهم،<0 /> <1>از تنظیمات پیش‌فرض استفاده کنید" + }, + "extension": { + "action": "افزونه را نصب کنید", + "description": "افزونه مرورگر را نصب کنید و به بهترین منابع دسترسی پیدا کنید.", + "quality": "بهترین کیفیت", + "title": "پسوند مرورگر" + }, + "proxy": { + "action": "راه اندازی پروکسی", + "description": "یک پروکسی را فقط در 5 دقیقه راه اندازی کنید و به منابع عالی دسترسی پیدا کنید.", + "quality": "کیفیت خوب", + "title": "پروکسی سفارشی" + } + }, + "title": "بیایید با فیلم وب راه اندازی کنیم" + } + }, + "overlays": { + "close": "بستن" + }, + "player": { + "back": { + "default": "بازگشت به خانه", + "short": "بازگشت" + }, + "casting": { + "enabled": "ارسال روی دستگاه..." + }, + "menus": { + "downloads": { + "disclaimer": "دانلود ها به طور مستقیم از ارائه دهنده گرفته شده است. مووی-وب کنترلی بر نحوه ارائه دانلود ها ندارد.", + "downloadPlaylist": "دانلود لیست پخش", + "downloadSubtitle": "دانلود زیرنویس فعلی", + "downloadVideo": "دانلود ویدیو", + "hlsDisclaimer": "دانلودها مستقیماً از ارائه دهنده گرفته می شوند. sudo-flix کنترلی بر نحوه ارائه دانلودها ندارد.

    لطفاً توجه داشته باشید که در حال دانلود یک لیست پخش HLS هستید، اگر با فرمت های پخش جریانی پیشرفته آشنایی ندارید دانلود آن توصیه نمی شود. . منابع مختلف را برای فرمت های مختلف امتحان کنید.", + "onAndroid": { + "1": "برای دانلود در اندروید، روی دکمه دانلود کلیک کنید و سپس در صفحه جدید، روی ویدیو ضربه بزنید و نگه دارید، سپس ذخیره را انتخاب کنید.", + "shortTitle": "دانلود / اندروید", + "title": "دانلود در اندروید" + }, + "onIos": { + "1": "برای دانلود در iOS، روی دکمه دانلود کلیک کنید و سپس در صفحه جدید، روی و سپس روی Save to Files کلیک کنید.", + "shortTitle": "دانلود / iOS", + "title": "دانلود در iOS" + }, + "onPc": { + "1": "در کامپیوتر، روی دکمه دانلود کلیک کنید و سپس در صفحه جدید، روی ویدیو کلیک راست کنید و Save video as را انتخاب کنید", + "shortTitle": "دانلود / کامپیوتر", + "title": "دانلود در کامپیوتر" + }, + "title": "دانلود" + }, + "episodes": { + "button": "قسمت ها", + "emptyState": "هنوز هیچ قسمتی در این فصل منتشر نشده، بعدا سر بزنید!", + "episodeBadge": "قسمت {{episode}}", + "loadingError": "مشکلی در دریافت قسمت ها پیش آمده", + "loadingList": "در حال دریافت...", + "loadingTitle": "در حال دریافت...", + "unairedEpisodes": "یک یا چند قسمت در این فصل غیرفعال شده است به دلیل اینکه هنوز پخش نشده است." + }, + "playback": { + "speedLabel": "سرعت پخش", + "title": "تنظیمات پخش" + }, + "quality": { + "automaticLabel": "کیفیت خودکار", + "hint": "شما می توانید با <0>تغییر منبع گزینه های مختلف کیفیت را به دست آورید.", + "iosNoQuality": "با توجه به محدودیت های تعریف شده توسط اپل، انتخاب کیفیت در iOS برای این منبع در دسترس نیست. شما می توانید با <0>تغییر منبع گزینه های مختلف کیفیت را به دست آورید.", + "title": "کیفیت" + }, + "settings": { + "downloadItem": "دانلود", + "enableSubtitles": "روشن کردن زیرنویس", + "experienceSection": "تجربه مشاهده", + "playbackItem": "تنظیمات پخش", + "qualityItem": "کیفیت", + "sourceItem": "منبع ویدیو", + "subtitleItem": "تنظیمات زیرنویس", + "videoSection": "تنظیمات ویدیو" + }, + "sources": { + "failed": { + "text": "یک خطا در هنگام تلاش برای پیدا کردن فیلم وجود دارد، لطفا یک منبع دیگر را امتحان کنید.", + "title": "دریافت اطلاعات ناموفق بود" + }, + "noEmbeds": { + "text": "نتوانستیم اطلاعات را پیدا کنیم، لطفا منبعی دیگر را امتحان کنید.", + "title": "اطلاعات پیدا نشد" + }, + "noStream": { + "text": "فیلم یا سریال شما در این منبع وجود ندارد.", + "title": "استریمی وجود ندارد" + }, + "title": "منبع", + "unknownOption": "ناشناخته" + }, + "subtitles": { + "customChoice": "انتخاب زیرنویس از فایل", + "customizeLabel": "شخصی سازی", + "offChoice": "خاموش", + "settings": { + "backlink": "زیرنویس سفارشی", + "delay": "تاخیر زیرنویس", + "fixCapitals": "تصحیح حروف اول بزرگ (انگلیسی)" + }, + "title": "زیرنویس ها", + "unknownLanguage": "ناشناخته" + } + }, + "metadata": { + "api": { + "text": "داده API بارگیری نشد، لطفا اتصال اینترنت خود را بررسی کنید.", + "title": "داده API بارگیری نشد" + }, + "dmca": { + "badge": "حذف شد", + "text": "این رسانه به دلیل اعلامیه حذف یا ادعای حق نسخه‌برداری دیگر در دسترس نیست.", + "title": "رسانه حذف شده است" + }, + "extensionPermission": { + "badge": "مجوز وجود ندارد", + "button": "از پسوند استفاده کنید", + "text": "شما افزونه مرورگر را دارید، اما برای شروع استفاده از برنامه افزودنی به اجازه شما نیاز داریم.", + "title": "افزونه را پیکربندی کنید" + }, + "failed": { + "badge": "ناموفق", + "homeButton": "بازگشت به خانه", + "text": "نتوانستیم اطلاعات را از TMDB دریافت کنیم. ممکن است TMDB موقتا غیرفعال باشد یا توسط ارائه دهنده شما فیلتر باشد.", + "title": "اطلاعات دریافت نشد" + }, + "notFound": { + "badge": "پیدا نشد", + "homeButton": "بازگشت به خانه", + "text": "فیلم یا سریالی که شما به دنبالش هستید رو پیدا نکردیم. ممکن است حذف شده باشد یا لینک این صفحه دستکاری شده باشد.", + "title": "رسانه ای پیدا نشد." + } + }, + "nextEpisode": { + "cancel": "لغو", + "next": "قسمت بعدی" + }, + "playbackError": { + "badge": "مشکلی در پخش به وجود آمده", + "errors": { + "errorAborted": "دریافت رسانه توسط لغو شد.", + "errorDecode": "با وجود اینکه قبلا مشخص شده بود که قابل استفاده است، یک خطا در هنگام تلاش برای رمزگشایی رسانه رخ داد که باعث مشکل شد.", + "errorGenericMedia": "رسانه ناشناخته است.", + "errorNetwork": "با وجود اینکه قبلا در دسترس بود، نوعی خطای شبکه رخ داد که مانع از دریافت رسانه ها شد.", + "errorNotSupported": "رسانه یا ارائه دهنده رسانه پشتیبانی نمی‌شود." + }, + "homeButton": "بازگشت به خانه", + "text": "مشکلی در پخش رسانه ها وجود داشت. لطفا دوباره تلاش کنید.", + "title": "پخش ویدئو موفقیت آمیز نبود!" + }, + "scraping": { + "items": { + "failure": "مشکلی پیش آمده", + "notFound": "این ویدیو وجود ندارد", + "pending": "در حال بررسی ویدیوها..." + }, + "notFound": { + "badge": "پیدا نشد", + "detailsButton": "نمایش جزئیات", + "homeButton": "بازگشت به خانه", + "text": "ما در ارائه دهندگان جستجو کرده ایم ولی نمی توانیم رسانه ای را که به دنبال آن را هستید پیدا کنیم! ما رسانه ها را میزبانی نمی کنیم و هیچ کنترلی بر آنچه در دسترس است نداریم. لطفا برای جزئیات بیشتر روی \"نمایش جزئیات\" در زیر کلیک کنید.", + "title": "پیدا نشد" + } + }, + "time": { + "regular": "{{timeWatched}} / {{duration}}", + "remaining": "{{timeLeft}} مشاهده شده • {{timeFinished, datetime}} دیگر تمام می‌شود", + "shortRegular": "{{timeWatched}}", + "shortRemaining": "-{{timeLeft}}" + }, + "turnstile": { + "description": "لطفا انسانیت خود را با تموم کردن چالش های کپچا به طور درست ثابت کنید. برای امن نگه داشتن فیلم وب!", + "error": "انسانیت شما تأیید نشد. لطفا دوباره تلاش کنید.", + "title": "ما باید برسی کنیم که شما انسان هستید.", + "verifyingHumanity": "تایید کردن انسانیت شما..." + } + }, + "screens": { + "dmca": { + "text": "به صفحه تماس DMCA مووی-وب خوش آمدید! ما به حقوق مالکیت معنوی احترام می گذاریم و می خواهیم به سرعت به هر گونه نگرانی کپی رایت رسیدگی کنیم. اگر فکر می کنید کار کپی رایت شما به طور نادرست در پلت فرم ما استفاده شده است، لطفا یک اطلاعیه DMCA دقیق را به ایمیل زیر ارسال کنید. لطفا شرح مواد کپی رایت، جزئیات تماس خود و بیانیه ای از اعتقاد حسن نیت را شامل شوید. ما متعهد به حل و فصل سریع این مسائل هستیم و از همکاری شما در حفظ وب فیلم به عنوان مکانی که به خلاقیت و کپی رایت احترام می گذارند، قدردانی می کنیم.", + "title": "DMCA" + }, + "loadingApp": "در حال اجرای برنامه", + "loadingUser": "در حال دریافت اطلاعات حساب کاربری", + "loadingUserError": { + "logout": "خروج", + "reset": "تغییر سرور", + "text": "حساب کاربری دریافت نشد", + "textWithReset": "دریافت حساب کاربری شما از سرور سفارشی شکست خورد، آیا می خواهید به سرور پیش فرض بازگردید؟" + }, + "migration": { + "failed": "دریافت اطلاعات شکست خورد.", + "inProgress": "درحال دریافت اطلاعات شما هستیم. خیلی طول نخواهد کشید." + } + }, + "settings": { + "account": { + "accountDetails": { + "deviceNameLabel": "نام دستگاه", + "deviceNamePlaceholder": "تلفن شخصی", + "editProfile": "ویرایش", + "logoutButton": "خروج" + }, + "actions": { + "delete": { + "button": "حذف حساب کاربری", + "confirmButton": "حذف حساب کاربری", + "confirmDescription": "آیا مطمئن هستید که می خواهید حساب خود را حذف کنید؟ تمام اطلاعات شما از دست خواهد رفت!", + "confirmTitle": "آیا مطمئن هستید؟", + "text": "این اقدام غیر قابل برگشت است. تمام اطلاعات حذف خواهد شد و هیچ چیز بازگردانی نمی‌شود.", + "title": "حذف حساب کاربری" + }, + "title": "اقدامات" + }, + "devices": { + "deviceNameLabel": "نام دستگاه", + "failed": "دریافت نشست ها شکست خورد", + "removeDevice": "حذف", + "title": "دستگاه ها" + }, + "profile": { + "finish": "پایان ویرایش", + "firstColor": "رنگ پروفایل اول", + "secondColor": "رنگ پروفایل دوم", + "title": "ویرایش عکس نمایه", + "userIcon": "نماد کاربری" + }, + "register": { + "cta": "شروع کنید", + "text": "پیشرفت تماشای خود را بین دستگاه‌ها به اشتراک بگذارید و آنها را با یکدیگر همگام کنید.", + "title": "همگام سازی" + }, + "title": "حساب کاربری" + }, + "appearance": { + "activeTheme": "فعال", + "themes": { + "blue": "آبی", + "default": "پیشفرض", + "gray": "خاکستری", + "red": "قرمز", + "teal": "سبز" + }, + "title": "ظاهر" + }, + "connections": { + "server": { + "description": "اگر میخواهید به یک بک-اند سفارشی برای ذخیره داده متصل شوید، با فعال و ارائه کردن این لینک ادامه دهید. <0>دستورالعمل ها.", + "label": "سرور سفارشی", + "urlLabel": "URL سرور سفارشی" + }, + "setup": { + "doSetup": "راه اندازی را انجام دهید", + "errorStatus": { + "description": "به نظر می رسد که یک یا چند مورد در این تنظیم نیاز به توجه شما دارد.", + "title": "چیزی به توجه شما نیاز دارد" + }, + "itemError": "مشکلی در این تنظیم وجود دارد. برای رفع آن دوباره تنظیمات را انجام دهید.", + "items": { + "default": "تنظیم پیش فرض", + "extension": "افزونه", + "proxy": "پروکسی سفارشی" + }, + "redoSetup": "تنظیم مجدد", + "successStatus": { + "description": "همه چیز برای شروع تماشای رسانه مورد علاقه‌تان آماده است.", + "title": "همه چیز تنظیم شده است!" + }, + "unsetStatus": { + "description": "لطفاً روی دکمه سمت راست کلیک کنید تا فرآیند نصب شروع شود.", + "title": "شما راه‌اندازی را طی نکرده‌اید" + } + }, + "title": "اتصالات", + "workers": { + "addButton": "اضافه کردن worker جدید", + "description": "برای ایجاد عملکرد برنامه، تمام ترافیک از طریق پروکسی ها هدایت می شود. اگر میخواهید این کار انجام دهید حتما از worker های خودتان استفاده کنید. <0>دستورالعمل ها.", + "emptyState": "هنوز هیچ worker ای وجود ندارد، یکی اضافه کنید", + "label": "استفاده از worker های پروکسی سفارشی", + "urlLabel": "لینک worker ها", + "urlPlaceholder": "https://" + } + }, + "preferences": { + "language": "زبان برنامه", + "languageDescription": "زبان برای کل برنامه کاربردی است.", + "thumbnail": "ایجاد تصاویر کوچک", + "thumbnailDescription": "بیشتر اوقات، ویدیوها تصاویر کوچک ندارند. شما می توانید این تنظیم را فعال کنید تا آنها را در لحظه تولید کنید، اما آنها می توانند ویدیوی شما را کندتر کنند.", + "thumbnailLabel": "ایجاد تصاویر کوچک", + "title": "اولویت ها" + }, + "reset": "بازنشانی", + "save": "ذخیره", + "sidebar": { + "info": { + "appVersion": "نسخه برنامه", + "backendUrl": "لینک بک-اند", + "backendVersion": "نسخه بک-اند", + "hostname": "لینک برنامه", + "insecure": "نا امن", + "notLoggedIn": "شما وارد نشده اید", + "secure": "امن", + "title": "اطلاعات برنامه", + "unknownVersion": "ناشناخته", + "userId": "شناسه کاربری" + } + }, + "subtitles": { + "backgroundLabel": "شفافیت پس‌زمینه", + "colorLabel": "رنگ", + "previewQuote": "نباید بترسم. ترس قاتل ذهن است.", + "textSizeLabel": "اندازه متن", + "title": "زیرنویس" + }, + "unsaved": "تغییرات ذخیره نشده دارید" + } +} diff --git a/src/assets/locales/fi-FI.json b/src/assets/locales/fi-FI.json new file mode 100644 index 00000000..069a3ab3 --- /dev/null +++ b/src/assets/locales/fi-FI.json @@ -0,0 +1,290 @@ +{ + "about": { + "description": "movie-web on verkkosovellus, joka etsii suoratoistoja internetistä. Tiimi pyrkii enimmäkseen minimalistiseen lähestymistapaan sisällön kuluttamiseen.", + "faqTitle": "Yleisiä kysymyksiä", + "q1": { + "body": "movie-web ei isännöi mitään sisältöä. Kun klikkaat jotain katsottavaa, valittua mediaa etsitään internetistä (latausnäytössä ja 'videolähteet'-välilehdellä näet, mitä lähdettä käytät). movie-web ei koskaan lataa mediaa, kaikki tapahtuu tämän hakumekanismin kautta.", + "title": "Mistä sisältö tulee?" + }, + "q2": { + "body": "Ohjelmaa tai elokuvaa ei voi pyytää, movie-web ei hallinnoi sisältöä. Kaikki sisältö katsotaan internetin lähteistä.", + "title": "Missä voin pyytää sarjaa tai elokuvaa?" + }, + "q3": { + "body": "Hakutuloksemme perustuvat The Movie Database (TMDB) -tietokantaan, ja ne näkyvät riippumatta siitä, onko sisältöä oikeasti lähteissämme.", + "title": "Hakutuloksissa näytetään ohjelma tai elokuva. Miksi en voi toistaa sitä?" + }, + "title": "Tietoja movie-webistä" + }, + "actions": { + "copied": "Kopioitu", + "copy": "Kopioi" + }, + "auth": { + "createAccount": "Eikö sinulla ole vielä tiliä? <0>Luo tili.", + "deviceNameLabel": "Laitteen nimi", + "deviceNamePlaceholder": "Henkilökohtainen puhelin", + "generate": { + "description": "Tunnuslauseesi toimii käyttäjätunnuksena ja salasanana. Varmista, että pidät sen turvassa, sillä sinun on annettava se kirjautuaksesi tilillesi", + "next": "Olen tallentanut tunnuslauseeni", + "passphraseFrameLabel": "Tunnuslause", + "title": "Sinun tunnuslause" + }, + "hasAccount": "Onko sinulla jo tili? <0>Kirjaudu sisään tästä.", + "login": { + "description": "Anna tunnuslauseesi kirjautuaksesi tilillesi", + "deviceLengthError": "Anna laitteen nimi", + "passphraseLabel": "12-sanainen tunnuslause", + "passphrasePlaceholder": "Tunnuslause", + "submit": "Kirjaudu sisään", + "title": "Kirjaudu tilillesi", + "validationError": "Väärä tai puutteellinen tunnuslause" + }, + "register": { + "information": { + "color1": "Profiilin väri yksi", + "color2": "Profiilin väri kaksi", + "header": "Anna laitteellesi nimi ja valitse haluamasi värit ja käyttäjäkuvake", + "icon": "Käyttäjäkuvake", + "next": "Seuraava", + "title": "Tilitiedot" + } + }, + "trust": { + "failed": { + "text": "Oletko määrittänyt sen oikein?", + "title": "Palvelimeen ei saada yhteyttä" + }, + "host": "Olet muodostamassa yhteyttä <0>{{hostname}} - vahvista, että luotat siihen ennen kuin luot tilin", + "no": "Mene takaisin", + "title": "Luotatko tähän palvelimeen?", + "yes": "Luotan tähän palvelimeen" + }, + "verify": { + "description": "Anna aikaisemmin saamasi tunnuslause vahvistaaksesi, että olet tallentanut sen ja luodaksesi tilisi", + "invalidData": "Tiedot eivät kelpaa", + "noMatch": "Tunnuslause ei täsmää", + "passphraseLabel": "12-sanainen tunnuslauseesi", + "recaptchaFailed": "ReCaptcha-tarkistus epäonnistui", + "register": "Luo tili", + "title": "Vahvista tunnuslauseesi" + } + }, + "errors": { + "badge": "Se hajosi", + "details": "Virheen tiedot", + "reloadPage": "Lataa sivu uudelleen", + "showError": "Näytä virheen tiedot", + "title": "Havaitsimme virheen!" + }, + "footer": { + "legal": { + "disclaimer": "Vastuuvapauslauseke", + "disclaimerText": "movie-web ei isännöi tiedostoja, se vain linkittää kolmannen osapuolen palveluihin. Lakiasioista tulee ottaa yhteyttä tiedostoisäntään ja palveluntarjoajiin. movie-web ei ole vastuussa videontarjoajien näyttämistä mediatiedostoista." + }, + "links": { + "discord": "Discord", + "dmca": "DMCA", + "github": "GitHub" + }, + "tagline": "Katso suosikkiohjelmiasi ja elokuviasi tällä avoimen lähdekoodin suoratoistosovelluksella." + }, + "global": { + "name": "movie-web", + "pages": { + "about": "Meistä", + "dmca": "DMCA", + "login": "Kirjaudu sisään", + "onboarding": "asetus", + "pagetitle": "{{title}} - movie-web", + "register": "Rekisteröidy", + "settings": "Asetukset" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "Kirjanmerkit" + }, + "continueWatching": { + "sectionTitle": "Jatka katselua" + }, + "mediaList": { + "stopEditing": "Lopeta muokkaaminen" + }, + "search": { + "allResults": "Siinä kaikki mitä meillä on!", + "failed": "Mediaa ei löytynyt, yritä uudelleen!", + "loading": "Ladataan...", + "noResults": "Emme löytäneet mitään!", + "placeholder": "Mitä haluat katsoa?", + "sectionTitle": "Hakutulokset" + }, + "titles": { + "day": { + "default": "Mitä haluaisit katsoa tänä iltapäivänä?", + "extra": [ + "Onko seikkailunhaluinen olo? Jurassic Park saattaa olla täydellinen valinta." + ] + }, + "morning": { + "default": "Mitä haluaisit katsoa tänä aamuna?", + "extra": [ + "Kuulen, että Rakkautta ennen aamua (Before Sunrise) on hyvä" + ] + }, + "night": { + "default": "Mitä haluaisit katsoa tänä iltana?", + "extra": [ + "Väsynyt? Kuulin, että Manaaja (The Exorcist) on hyvä." + ] + } + } + }, + "media": { + "episodeDisplay": "K{{season}} J{{episode}}", + "types": { + "movie": "Elokuva", + "show": "Sarja" + } + }, + "navigation": { + "banner": { + "offline": "Tarkista Internet-yhteytesi" + }, + "menu": { + "about": "Meistä", + "donation": "Lahjoita", + "logout": "Kirjaudu ulos", + "register": "Synkronoi pilveen", + "settings": "Asetukset", + "support": "Tuki" + } + }, + "notFound": { + "badge": "Ei löydetty", + "goHome": "Takaisin kotiin", + "message": "Etsimme kaikkialta: roskakorien alta, kaapista, välityspalvelimen takaa, mutta emme lopulta löytäneet etsimääsi sivua.", + "title": "Sivua ei löytynyt" + }, + "onboarding": { + "defaultConfirm": { + "cancel": "Peruuta", + "confirm": "Käytä oletuksia", + "description": "Oletuksissa ei ole parhaita suoratoistoja ja se voi olla sietämättömän hidasta.", + "title": "Oletko varma?" + }, + "extension": { + "back": "Mene takaisin", + "explainer": "Käyttämällä selainlaajennusta voit saada parhaat tarjoamamme suoratoistot. Yksinkertaisella asennuksella.", + "explainerIos": "Valitettavasti selainlaajennusta ei tueta iOS:ssä. Valitse toinen vaihtoehto painamalla Palaa.", + "extensionHelp": "Jos olet asentanut laajennuksen, mutta se ei havaitse sitä, avaa laajennus selaimen laajennusvalikosta ja noudata näytön ohjeita.", + "linkChrome": "Asenna Chromen laajennus", + "linkFirefox": "Asenna Firefoxin laajennus", + "notDetecting": "Asensitko sen Chromelle, mutta sivusto ei havaitse sitä? Kokeile ladata sivu uudelleen!", + "notDetectingAction": "Lataa sivu uudelleen", + "status": { + "disallowed": "Laajennus ei ole otettu käyttöön tälle sivulle", + "disallowedAction": "Ota laajennus käyttöön", + "failed": "Pyynnön tilan hakeminen epäonnistui", + "loading": "Odottaa, että asennat laajennuksen", + "outdated": "Laajennuksen versio on liian vanha", + "success": "Laajennus toimii odotetusti!" + }, + "submit": "Jatketaan", + "title": "Aloitetaan laajennuksella" + }, + "proxy": { + "back": "Mene takaisin", + "explainer": "Proxy-menetelmällä voit saada erinomaisen laadukkaita suoratoistoja luomalla itsepalveluvaltuutetun proxyn.", + "input": { + "errorConnection": "Yhteys proxyn kanssa ei onnistunut", + "errorInvalidUrl": "Ei kelvollinen URL-osoite", + "errorNotProxy": "Odotettiin proxya, mutta saatiinkin verkkosivu", + "label": "Proxyn URL-osoite", + "placeholder": "https://" + }, + "link": "Opi luomaan proxy", + "submit": "Toimita proxy", + "title": "Luodaan uusi proxy" + }, + "start": { + "explainer": "Parhaiden suoratoistojen saamiseksi sinun täytyy valita, mitä suoratoistomenetelmää haluat käyttää.", + "options": { + "default": { + "text": "En halua hyvälaatuisia suoratoistoja,<0 /> <1>käytä oletusasetusta" + }, + "extension": { + "action": "Asenna laajennus", + "description": "Asenna selaimen laajennus ja saa pääsy parhaisiin lähteisiin." + } + }, + "title": "Aloitetaan asennus elokuva-webin kanssa" + } + }, + "player": { + "menus": { + "episodes": { + "emptyState": "Tässä kaudessa ei ole jaksoja, tarkista myöhemmin!" + }, + "quality": { + "hint": "Voit kokeilla <0>vaihtaa lähdettä saadaksesi eri laatuasetuksia." + }, + "sources": { + "noEmbeds": { + "text": "Emme löytäneet upotuksia, kokeile toista lähdettä." + }, + "noStream": { + "text": "Tässä lähteessä ei ole suoratoistoja tälle elokuvalle tai ohjelmalle." + } + } + }, + "metadata": { + "api": { + "text": "API-metatietoja ei voitu ladata, tarkista internet-yhteys.", + "title": "Ei voitu ladata API:n metatietoja." + } + }, + "playbackError": { + "errors": { + "errorAborted": "Mediatiedon haku keskeytettiin käyttäjän pyynnöstä.", + "errorNotSupported": "Mediaa tai mediantarjoajaa ei tueta." + }, + "text": "Tapahtui virhe yritettäessä toistaa mediaa. Yritä uudelleen." + }, + "time": { + "remaining": "{{timeLeft}} jäljellä • Päättyy {{timeFinished, datetime}}" + }, + "turnstile": { + "error": "Ei voitu varmistaa inhimillisyyttäsi. Yritä uudelleen.", + "title": "Meidän täytyy varmistaa, että olet ihminen." + } + }, + "screens": { + "migration": { + "inProgress": "Pysy hetkisen odotuksessa, siirrämme tietojasi. Tämä ei kestä kauan." + } + }, + "settings": { + "account": { + "register": { + "text": "Jaa katseluetenemisesi laitteiden välillä ja pidä ne synkronoituina." + } + }, + "connections": { + "setup": { + "unsetStatus": { + "description": "Käynnistä asennusprosessi napsauttamalla oikealla olevaa painiketta." + } + }, + "workers": { + "emptyState": "Ei vielä työntekijöitä, lisää yksi alle" + } + }, + "preferences": { + "languageDescription": "Kieli sovellettu koko sovellukseen." + }, + "subtitles": { + "previewQuote": "Minun ei pidä pelätä. Pelko on mielen tappaja." + } + } +} diff --git a/src/assets/locales/fr.json b/src/assets/locales/fr.json new file mode 100644 index 00000000..cabaf2ad --- /dev/null +++ b/src/assets/locales/fr.json @@ -0,0 +1,530 @@ +{ + "about": { + "description": "sudo-flix est une application web qui recherche des flux sur Internet. L'équipe vise une approche minimaliste de la consommation de contenu.", + "faqTitle": "Questions fréquentes", + "q1": { + "body": "sudo-flix n'héberge aucun contenu. Lorsque vous cliquez sur un élément à regarder, une recherche est effectuée sur Internet pour trouver le média sélectionné (sur l'écran de chargement et dans l'onglet \"sources vidéo\", vous pouvez voir quelle source vous utilisez). Les médias ne sont jamais téléchargés par sudo-flix, tout passe par ce mécanisme de recherche.", + "title": "D'où vient le contenu ?" + }, + "q2": { + "body": "Il est impossible de solliciter une émission ou un film car sudo-flix ne gère aucun contenu. Les sources sur Internet sont utilisées pour consulter tous les contenus.", + "title": "Où puis-je demander une série ou un film ?" + }, + "q3": { + "body": "Que nos sources soient propriétaires du contenu ou non, The Movie Database (TMDB) fournit et affiche nos résultats de recherche.", + "title": "Les résultats de la recherche affichent l'émission ou le film, pourquoi ne puis-je pas le lire ?" + }, + "title": "À propos de sudo-flix" + }, + "actions": { + "copied": "Copié", + "copy": "Copier" + }, + "auth": { + "createAccount": "N'avez-vous pas encore de compte ? <0>Créer un compte.", + "deviceNameLabel": "Nom de l'appareil", + "deviceNamePlaceholder": "Téléphone personnel", + "generate": { + "description": "Le nom d'utilisateur et le mot de passe sont obtenus à partir de votre passphrase. Vous devrez la saisir pour accéder à votre compte, alors gardez-la précieusement", + "next": "J'ai sauvegardé ma passphrase", + "passphraseFrameLabel": "Pass phrase", + "title": "Votre passphrase" + }, + "hasAccount": "Avez-vous déjà un compte ? <0>Connectez-vous ici.", + "login": { + "description": "Veuillez fournir votre passphrase pour accéder à votre compte", + "deviceLengthError": "Veuillez saisir un nom d'appareil", + "passphraseLabel": "Passphrase de 12 mots", + "passphrasePlaceholder": "Phrase secrète", + "submit": "Se connecter", + "title": "Se connecter à votre compte", + "validationError": "Passphrase incorrecte ou incomplete" + }, + "register": { + "information": { + "color1": "Couleur de profile un", + "color2": "Couleur de profile deux", + "header": "Entrez un nom pour votre appareil et choisissez une couleur de profile ainsi qu'une icône d'utilisateur de votre choix", + "icon": "Icône d'utilisateur", + "next": "Prochain", + "title": "Informations sur le compte" + } + }, + "trust": { + "failed": { + "text": "L'avez-vous configuré correctement ?", + "title": "Échec de la connexion au serveur" + }, + "host": "Vous vous connectez à <0>{{hostname}} - veuillez confirmer que vous lui faites confiance avant de créer un compte", + "no": "Retour", + "title": "Avez-vous confiance en ce serveur ?", + "yes": "Je fais confiance à ce serveur" + }, + "verify": { + "description": "Veuillez saisir votre passphrase pour confirmer que vous l'avez enregistrée et pour créer votre compte", + "invalidData": "Les données ne sont pas valides", + "noMatch": "La passphrase ne correspond pas", + "passphraseLabel": "Votre passphrase de 12 mots", + "recaptchaFailed": "La validation ReCaptcha a échoué", + "register": "Créer un compte", + "title": "Confirmez votre passphrase" + } + }, + "errors": { + "badge": "Il s'est cassé", + "details": "Détails de l'erreur", + "reloadPage": "Actualiser la page", + "showError": "Afficher les détails de l'erreur", + "title": "Nous avons rencontré une erreur !" + }, + "footer": { + "legal": { + "disclaimer": "Avertissement", + "disclaimerText": "Le site sudo-flix ne stocke pas de fichiers, mais propose des liens vers des services externes. Les problèmes juridiques doivent être traités avec les fournisseurs et les hébergeurs de fichiers. Les fichiers multimédias diffusés par les fournisseurs de vidéos ne sont pas couverts par sudo-flix." + }, + "links": { + "discord": "Discord", + "dmca": "DMCA", + "github": "GitHub" + }, + "tagline": "Cette application de streaming open source vous permet de regarder vos émissions et films préférés." + }, + "global": { + "name": "sudo-flix", + "pages": { + "about": "À propos", + "dmca": "DMCA", + "login": "Se connecter", + "onboarding": "Setup", + "pagetitle": "{{title}} - sudo-flix", + "register": "Créer un compte", + "settings": "Paramètres" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "Favoris" + }, + "continueWatching": { + "sectionTitle": "Continuer le visionnage" + }, + "mediaList": { + "stopEditing": "Arrêter l'édition" + }, + "search": { + "allResults": "C'est tout ce que nous avons !", + "failed": "Le média n'a pas été trouvé, veuillez réessayez !", + "loading": "Chargement...", + "noResults": "Nous n'avons rien trouvé !", + "placeholder": "Que voulez-vous voir ?", + "sectionTitle": "Résultats de la recherche" + }, + "titles": { + "day": { + "default": "Que voulez-vous regarder cet après-midi ?", + "extra": [ + "Amoureux des films d'animation ? Suzume est un incontournable." + ] + }, + "morning": { + "default": "Que voulez-vous regarder ce matin ?", + "extra": ["Les films, c'est comme les voyages : ça nous ouvre l'esprit"] + }, + "night": { + "default": "Que voulez-vous regarder ce soir ?", + "extra": [ + "À la recherche d'un bon film d'horreur à regarder ? J'ai entendu dire que Scream était bien." + ] + } + } + }, + "media": { + "episodeDisplay": "S{{season}} E{{episode}}", + "types": { + "movie": "Film", + "show": "Série" + } + }, + "navigation": { + "banner": { + "offline": "Vérifiez votre connexion internet" + }, + "menu": { + "about": "À propos de nous", + "donation": "Faire un don", + "logout": "Se déconnecter", + "register": "Synchroniser au Cloud", + "settings": "Paramètres", + "support": "Support" + } + }, + "notFound": { + "badge": "Introuvable", + "goHome": "Retour à l'accueil", + "message": "Nous avons cherché partout : sous les poubelles, dans le placard, derrière le proxy, mais nous n'avons finalement pas trouvé la page que vous cherchez.", + "title": "Impossible de trouver cette page" + }, + "onboarding": { + "defaultConfirm": { + "cancel": "Annuler", + "confirm": "Utiliser la configuration de départ", + "description": "La configuration par défaut n'offre pas les meilleurs flux et peut être insupportablement lente.", + "title": "Es-tu sûr ?" + }, + "extension": { + "back": "Retour en arrière", + "explainer": "En utilisant l'extension de navigateur, vous pouvez obtenir les meilleurs flux que nous avons à offrir. Avec juste une simple installation.", + "extensionHelp": "Si vous avez installé l'extension mais qu'elle n'est pas détectée. Ouvrez l'extension via le menu des extensions de votre navigateur et suivez les étapes à l'écran.", + "status": { + "disallowed": "L'extension n'est pas activée pour cette page", + "disallowedAction": "Activer l'extension", + "failed": "Échec de la demande de statut", + "loading": "En attendant que vous installiez l'extension", + "outdated": "Version d'extension trop ancienne", + "success": "L'extension fonctionne comme prévu !" + }, + "submit": "Continuer", + "title": "Commençons par une extension" + }, + "proxy": { + "back": "Retour en arrière", + "explainer": "Avec la méthode du proxy, vous pouvez obtenir des flux de bonne qualité en créant un proxy en libre-service.", + "input": { + "errorConnection": "Impossible de se connecter au proxy", + "errorInvalidUrl": "URL non valide", + "errorNotProxy": "Je m'attendais à un proxy mais j'ai obtenu un site Web", + "label": "URL du proxy", + "placeholder": "https://" + }, + "link": "Apprenez à créer un proxy", + "submit": "Soumettre le proxy", + "title": "Créons un nouveau proxy" + }, + "start": { + "explainer": "Pour obtenir les meilleurs flux possibles. Vous devrez choisir la méthode de streaming que vous souhaitez utiliser.", + "options": { + "default": { + "text": "Je ne veux pas de flux de bonne qualité,<0 /> <1>use the default setup" + }, + "extension": { + "action": "Installer l'extension", + "description": "Installez l'extension de navigateur et accédez aux meilleures sources.", + "quality": "Meilleur qualité", + "title": "Extension du navigateur" + }, + "proxy": { + "action": "Configurez le proxy", + "description": "Configurez un proxy en seulement 5 minutes et accédez à d'excellentes sources.", + "quality": "Bonne qualité", + "title": "Proxy personnalisé" + } + }, + "title": "Commençons par vous configurer sudo-flix" + } + }, + "overlays": { + "close": "Fermer" + }, + "player": { + "back": { + "default": "Retour à la page d'accueil", + "short": "Retour" + }, + "casting": { + "enabled": "Casting à l'appareil..." + }, + "menus": { + "downloads": { + "disclaimer": "Les téléchargements sont effectués directement par le fournisseur. sudo-flix n'a aucun contrôle sur la manière dont les téléchargements sont effectués.", + "downloadPlaylist": "Télécharger la liste de lecture", + "downloadSubtitle": "Télécharger les sous-titres", + "downloadVideo": "Télécharger la vidéo", + "hlsDisclaimer": "Les téléchargements sont effectués directement auprès du fournisseur. sudo-flix n'a aucun contrôle sur la façon dont les téléchargements sont fournis.

    Veuillez noter que vous téléchargez une liste de lecture HLS, il n'est pas recommandé de télécharger si vous n'êtes pas familier avec les formats de streaming avancés. . Essayez différentes sources pour différents formats.", + "onAndroid": { + "1": "Pour télécharger sur Android, cliquez sur le bouton de téléchargement puis, sur la nouvelle page, tapez et maintenez sur la vidéo, puis sélectionnez enregistrer.", + "shortTitle": "Télécharger / Android", + "title": "Téléchargement sur Android" + }, + "onIos": { + "1": "Pour télécharger sur iOS, cliquez sur le bouton de téléchargement puis, sur la nouvelle page, cliquez sur , puis Enregistrer dans les fichiers .", + "shortTitle": "Télécharger / iOS", + "title": "Télécharger sur iOS" + }, + "onPc": { + "1": "Sur PC, cliquez sur le bouton de téléchargement puis, sur la nouvelle page, faites un clic droit sur la vidéo et sélectionnez Enregistrer la vidéo sous", + "shortTitle": "Télécharger / PC", + "title": "Téléchargement sur PC" + }, + "title": "Télécharger" + }, + "episodes": { + "button": "Épisodes", + "emptyState": "Il n'y a pas d'épisodes dans cette saison, revenez plus tard !", + "episodeBadge": "E{{episode}}", + "loadingError": "Erreur de chargement de la saison", + "loadingList": "Chargement...", + "loadingTitle": "Chargement...", + "unairedEpisodes": "Un ou plusieurs épisodes de cette saison ont été désactivés car ils n'ont pas encore été diffusés." + }, + "playback": { + "speedLabel": "Vitesse de lecture", + "title": "Paramètres de lecture" + }, + "quality": { + "automaticLabel": "Qualité automatique", + "hint": "Vous pouvez essayer de <0>changer de fournisseur pour obtenir différentes options de qualité.", + "iosNoQuality": "En raison des limitations définies par Apple, la sélection de la qualité n'est pas disponible sur iOS pour cette source. Vous pouvez essayer <0>de passer à une autre source pour obtenir des options de qualité différentes.", + "title": "Qualité" + }, + "settings": { + "downloadItem": "Télécharger", + "enableSubtitles": "Activer les sous-titres", + "experienceSection": "Expérience de visionnage", + "playbackItem": "Paramètres de lecture", + "qualityItem": "Qualité", + "sourceItem": "Sources vidéo", + "subtitleItem": "Paramètres des sous-titres", + "videoSection": "Paramètres vidéo" + }, + "sources": { + "failed": { + "text": "Une erreur s'est produite lors de la recherche de vidéos, veuillez essayer une autre source.", + "title": "Échec de la récupération (scrape)" + }, + "noEmbeds": { + "text": "Nous n'avons pas trouvé de liens, veuillez essayer une autre source.", + "title": "Pas d'embeds trouvés" + }, + "noStream": { + "text": "Cette source n'a pas de flux pour ce film ou cette émission.", + "title": "Pas de flux" + }, + "title": "Sources", + "unknownOption": "Inconnu" + }, + "subtitles": { + "customChoice": "Importer des sous-titres depuis un fichier", + "customizeLabel": "Personnaliser", + "offChoice": "Désactivé", + "settings": { + "backlink": "Sous-titres personnalisés", + "delay": "Délai des sous-titres", + "fixCapitals": "Corriger les capitales" + }, + "title": "Sous-titres", + "unknownLanguage": "Inconnu" + } + }, + "metadata": { + "api": { + "text": "Impossible de charger les métadonnées de l'API, veuillez vérifier votre connexion Internet.", + "title": "Échec du chargement des métadonnées de l'API" + }, + "dmca": { + "badge": "Supprimé", + "text": "Ce média n'est plus disponible en raison d'un avis de retrait ou d'une réclamation pour atteinte aux droits d'auteur.", + "title": "Le média a été supprimé" + }, + "extensionPermission": { + "badge": "Autorisation manquante", + "button": "Utiliser l'extension", + "text": "Vous disposez de l'extension de navigateur, mais nous avons besoin de votre autorisation pour commencer à utiliser l'extension.", + "title": "Configurer l'extension" + }, + "failed": { + "badge": "Échec", + "homeButton": "Revenir à l'accueil", + "text": "Impossible de charger les métadonnées du média à partir de TMDB. Veuillez vérifier si TMDB est en panne ou bloqué sur votre connexion internet.", + "title": "Échec du chargement des métadonnées" + }, + "notFound": { + "badge": "Introuvable", + "homeButton": "Retour à l'accueil", + "text": "Nous n'avons pas trouvé le média que vous avez demandé. Soit il a été supprimé, soit vous avez modifié l'URL.", + "title": "Impossible de trouver ce média." + } + }, + "nextEpisode": { + "cancel": "Annuler", + "next": "Prochain épisode" + }, + "playbackError": { + "badge": "Erreur de lecture", + "errors": { + "errorAborted": "L'extraction du média a été interrompue à la demande de l'utilisateur.", + "errorDecode": "Bien qu'elle ait été jugée utilisable, une erreur s'est produite lors de la tentative de décodage de la ressource multimédia, ce qui a entraîné une erreur.", + "errorGenericMedia": "Une erreur de média inconnue est survenue.", + "errorNetwork": "Une erreur de réseau s'est produite qui a empêché la récupération du média, bien qu'il ait été disponible auparavant.", + "errorNotSupported": "L'objet du media ou de la source du média n'est pas supporté." + }, + "homeButton": "Retour à la maison", + "text": "Une erreur s'est produite lors de la lecture du média. Veuillez réessayer.", + "title": "Oups, c'est coupé !" + }, + "scraping": { + "items": { + "failure": "Une erreur est survenue", + "notFound": "N'a pas la vidéo", + "pending": "Recherche de vidéos..." + }, + "notFound": { + "badge": "Non trouvé", + "detailsButton": "Afficher les détails", + "homeButton": "Retour à la maison", + "text": "Nous avons cherché parmi nos sources et n'avons pas trouvé les médias que vous recherchez ! Nous n'hébergeons pas les médias et n'avons aucun contrôle sur ce qui est disponible. Veuillez cliquer sur \"Afficher les détails\" ci-dessous pour plus d'informations.", + "title": "Nous n'avons pas trouvé cela" + } + }, + "time": { + "regular": "{{timeWatched}} / {{duration}}", + "remaining": "{{timeLeft}} restant • Fini à {{timeFinished, datetime}}", + "shortRegular": "{{timeWatched}}", + "shortRemaining": "-{{timeLeft}}" + }, + "turnstile": { + "description": "Veuillez vérifier que vous êtes bien humain en complétant le Captcha à droite. C'est pour assurer la sécurité de sudo-flix !", + "error": "Échec de la vérification de votre humanité. Veuillez réessayer.", + "title": "Nous devons vérifier que vous êtes un humain.", + "verifyingHumanity": "Vérification de votre humanité..." + } + }, + "screens": { + "dmca": { + "text": "Bienvenue sur la page de contact DMCA de sudo-flix ! Nous respectons les droits de propriété intellectuelle et souhaitons répondre rapidement à toute question relative aux droits d'auteur. Si vous pensez que votre œuvre protégée par des droits d'auteur a été utilisée de manière inappropriée sur notre plateforme, veuillez envoyer une notification DMCA détaillée à l'adresse électronique ci-dessous. Veuillez inclure une description du matériel protégé par des droits d'auteur, vos coordonnées et une déclaration de bonne foi. Nous nous engageons à résoudre ces problèmes rapidement et vous remercions de votre coopération pour que sudo-flix reste un lieu respectueux de la créativité et des droits d'auteur.", + "title": "DMCA" + }, + "loadingApp": "Chargement de l'application", + "loadingUser": "Chargement de votre profil", + "loadingUserError": { + "logout": "Se déconnecter", + "reset": "Réinitialiser le serveur personnalisé", + "text": "Échec du chargement de votre profil", + "textWithReset": "Echec du chargement de votre profil à partir de votre serveur personnalisé, souhaitez-vous revenir au serveur par défaut ?" + }, + "migration": { + "failed": "La migration de vos données a échoué.", + "inProgress": "Veuillez patienter, nous sommes en train de migrer vos données. Cela ne devrait pas prendre longtemps." + } + }, + "settings": { + "account": { + "accountDetails": { + "deviceNameLabel": "Nom de l'appareil", + "deviceNamePlaceholder": "Téléphone personnel", + "editProfile": "Éditer", + "logoutButton": "Se déconnecter" + }, + "actions": { + "delete": { + "button": "Supprimer le compte", + "confirmButton": "Supprimer le compte", + "confirmDescription": "Êtes-vous sûr de vouloir supprimer votre compte ? Toutes vos données seront perdues !", + "confirmTitle": "Êtes-vous sûr ?", + "text": "Cette action est irréversible. Toutes les données seront supprimées et rien ne pourra être récupéré.", + "title": "Supprimer le compte" + }, + "title": "Actions" + }, + "devices": { + "deviceNameLabel": "Nom de l'appareil", + "failed": "Échec du chargement des sessions", + "removeDevice": "Enlever", + "title": "Appareils" + }, + "profile": { + "finish": "Terminer l'édition", + "firstColor": "Couleur de profil un", + "secondColor": "Couleur de profil deux", + "title": "Éditer la photo de profil", + "userIcon": "Icône de l'utilisateur" + }, + "register": { + "cta": "Commencer", + "text": "Partagez la progression de vos films et séries entre vos appareils et gardez-les synchronisés.", + "title": "Synchroniser au Cloud" + }, + "title": "Compte" + }, + "appearance": { + "activeTheme": "Actif", + "themes": { + "blue": "Bleu", + "default": "Défaut", + "gray": "Gris", + "red": "Rouge", + "teal": "Saphir" + }, + "title": "Apparence" + }, + "connections": { + "server": { + "description": "Si vous désirez utiliser un système de stockage externe pour enregistrer vos données, activez cette option et indiquez l'URL. <0>Instructions.", + "label": "Serveur personnalisé", + "urlLabel": "URL du serveur personnalisé" + }, + "setup": { + "doSetup": "Faire la configuration", + "errorStatus": { + "description": "Il semble qu'un ou plusieurs éléments de cette configuration nécessitent votre attention.", + "title": "Quelque chose nécessite votre attention" + }, + "itemError": "Ce paramètre présente un problème. Résolvez le problème en redémarrant la configuration.", + "items": { + "default": "Configuration par défaut", + "extension": "Extension", + "proxy": "Proxy personnalisé" + }, + "redoSetup": "Refaire la configuration", + "successStatus": { + "description": "Tout est réuni pour que vous puissiez commencer à regarder vos médias préférés.", + "title": "Tout est mis en place !" + }, + "unsetStatus": { + "description": "Pour commencer le processus de configuration, veuillez cliquer sur le bouton à droite.", + "title": "Vous n'avez pas fait la configuration" + } + }, + "title": "Connexions", + "workers": { + "addButton": "Ajouter un nouveau worker", + "description": "Pour que l'application fonctionne, tout le trafic est acheminé via des proxys. Activez cette option si vous souhaitez faire appel à vos propres workers. <0>Instructions.", + "emptyState": "Pas encore de workers, ajoutez-en un ci-dessous", + "label": "Utiliser des agents proxy personnalisés", + "urlLabel": "URLs des workers", + "urlPlaceholder": "https://" + } + }, + "preferences": { + "language": "Language de l'application", + "languageDescription": "Langue appliquée à l’ensemble de l’application.", + "thumbnail": "Générer des miniatures", + "thumbnailDescription": "La plupart du temps, les vidéos n'ont pas de miniatures. Vous pouvez activer ce paramètre pour les générer à la volée, mais ils peuvent ralentir votre vidéo.", + "thumbnailLabel": "Générer des miniatures", + "title": "Préférences" + }, + "reset": "Réinitialiser", + "save": "Sauvegarder", + "sidebar": { + "info": { + "appVersion": "Version de l'application", + "backendUrl": "URL de Backend", + "backendVersion": "Version de la Backend", + "hostname": "Nom d'hôte", + "insecure": "Insécure", + "notLoggedIn": "Vous n'êtes pas connecté", + "secure": "Sécurisé", + "title": "Informations sur l'application", + "unknownVersion": "Inconnu", + "userId": "ID de l'utilisateur" + } + }, + "subtitles": { + "backgroundLabel": "Opacité du fond", + "colorLabel": "Couleur", + "previewQuote": "Plus l'obscurité est profonde, plus la lumière brille.", + "textSizeLabel": "Taille des textes", + "title": "Sous-titres" + }, + "unsaved": "Vous avez des changements non sauvegardés" + } +} diff --git a/src/assets/locales/gl.json b/src/assets/locales/gl.json new file mode 100644 index 00000000..8adecabb --- /dev/null +++ b/src/assets/locales/gl.json @@ -0,0 +1,428 @@ +{ + "about": { + "description": "sudo-flix é unha aplicación web que busca transmisións na rede. O equipo ten como obxectivo manter un enfoque principalmente minimalista para consumir os contidos.", + "faqTitle": "Preguntas frecuentes", + "q1": { + "body": "sudo-flix non aloxa ningún contido. Cando premes en algo para ver o contenido, búscase en internet o medio seleccionado. (Na pantalla de carga e na lapela 'fontes de video' podes ver que fonte se está a empregar. O contido nunca se carga en sudo-flix, todo realízase a través deste método de busca.", + "title": "De onde proveñen os contidos?" + }, + "q2": { + "body": "Non é posible solicitar unha película. sudo-flix non xestiona ningún contido. Todo o contido é xestionado a través de fontes na rede.", + "title": "Onde poido solicitar unha película a engadir?" + }, + "q3": { + "body": "Os nosos resultados de busqueda proveñen de The Movie Database (TMDB) e se mostran independentemente de se as nosas fontes multimedia teñen realmente o contido.", + "title": "Os resultados da busca mostran a serie ou película... Por qué non poido reproducila?" + }, + "title": "Acerca de sudo-flix" + }, + "actions": { + "copied": "Copiado", + "copy": "Copiar" + }, + "auth": { + "createAccount": "Non tes unha conta aínda? <0>Crea unha conta.", + "deviceNameLabel": "Nome do dispositivo", + "deviceNamePlaceholder": "Teléfono persoal", + "generate": { + "description": "A túa contraseña actua como o teu nome de usuario e contraseña. Asegúrate de mantelas seguras, xa que as necesitarás para iniciar sesión na túa conta", + "next": "Gardei a contraseña exitosamente", + "passphraseFrameLabel": "Contraseña", + "title": "A túa contraseña" + }, + "hasAccount": "Tes xa unha conta? <0>Inicia sesión aquí.", + "login": { + "description": "Por favor, ingresa a túa contraseña para iniciar sesión na túa conta", + "deviceLengthError": "Por favor, ingresa un nome de dispositivo", + "passphraseLabel": "Contraseña de 12 caracteres", + "passphrasePlaceholder": "Contraseña", + "submit": "Iniciar sesión", + "title": "Inicia sesión na túa conta", + "validationError": "Contraseña incorrecta ou incompleta" + }, + "register": { + "information": { + "color1": "Cór de perfil un", + "color2": "Cór de perfil dous", + "header": "Ingresa un nome para o teu dispositivo, elixe cores, e un icono de usuario", + "icon": "Ícono de usuario", + "next": "Seguinte", + "title": "Información da conta" + } + }, + "trust": { + "failed": { + "text": "Configurachelo correctamente?", + "title": "Non se puido conectar ao servidor" + }, + "host": "Estaste a conectar a <0>{{hostname}} - por favor, confirma se confías antes de crear a conta", + "no": "Regresar", + "title": "Confías neste servidor?", + "yes": "Si, si que confío neste servidor" + }, + "verify": { + "description": "Por favor, ingresa a túa contraseña para confirmar que está gardada para crear a túa conta", + "invalidData": "Os datos non son válidos", + "noMatch": "A contraseña non coincide", + "passphraseLabel": "A contraseña debe de ser de 12 caracteres", + "recaptchaFailed": "A validación ReCaptcha fallou", + "register": "Crear conta", + "title": "Confirma a túa contraseña" + } + }, + "errors": { + "badge": "Rompeu", + "details": "Detalles do erro", + "reloadPage": "Recargar a páxina", + "showError": "Mostrar detalles do erro", + "title": "Atopamos un erro!" + }, + "footer": { + "legal": { + "disclaimer": "Descargo de responsabilidade", + "disclaimerText": "sudo-flix non aloxa ningún arquivo, simplemente enlaza con servizos de terceiros. Os problemas legais deben ser tratados cós proovedores de arquivos e servizos. sudo-flix non se fai responsable dos arquivos multimedia mostrados polos provedores de video." + }, + "links": { + "discord": "Discord", + "dmca": "DMCA", + "github": "GitHub" + }, + "tagline": "Disfruta das túas series e películas favoritas con esta aplicación de transmisión de código aberto." + }, + "global": { + "name": "sudo-flix", + "pages": { + "about": "Acerca de", + "dmca": "DMCA", + "login": "Iniciar sesión", + "pagetitle": "{{title}} - sudo-flix", + "register": "Rexistrarse", + "settings": "Configuración" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "Marcadores" + }, + "continueWatching": { + "sectionTitle": "Continuar vendo" + }, + "mediaList": { + "stopEditing": "Deter edición" + }, + "search": { + "allResults": "Esto é todo o que temos!", + "failed": "Error ao encontrar contido... intentao de novo!", + "loading": "Cargando...", + "noResults": "Non atopamos nada!", + "placeholder": "Que che gustaría ver?", + "sectionTitle": "Resultados da busca" + }, + "titles": { + "day": { + "default": "Que che gustaría ver esta tarde?", + "extra": [ + "Sínteste aventureiro? Jurassic Park podería ser a elección perfecta." + ] + }, + "morning": { + "default": "Que che gustaría ver esta mañá?", + "extra": ["Escoitei que “Antes del amanecer” é boa"] + }, + "night": { + "default": "Que che gustaría ver esta noite?", + "extra": ["Canso? Escoitei que “El Exorcista” é boa."] + } + } + }, + "media": { + "episodeDisplay": "T{{season}} E{{episode}}", + "types": { + "movie": "Película", + "show": "Serie" + } + }, + "navigation": { + "banner": { + "offline": "Verifica a túa conexión a internet" + }, + "menu": { + "about": "Acerca de nós", + "donation": "Doar", + "logout": "Cerrar sesión", + "register": "Sincronizar coa nube", + "settings": "Configuración", + "support": "Soporte" + } + }, + "notFound": { + "badge": "Non atopado", + "goHome": "Volver ao inicio", + "message": "Prometocho, buscamos en todas partes: debaixo dos contenedores, no armario, detrás do proxy, pero ao final non puidemos atopar a páxina que estabas buscando.", + "title": "Non atopei a páxona que estabas a buscar" + }, + "overlays": { + "close": "Cerrar" + }, + "player": { + "back": { + "default": "Volver ao inicio", + "short": "Volver" + }, + "casting": { + "enabled": "Transmitiendo ao dispositivo..." + }, + "menus": { + "downloads": { + "disclaimer": "As descargas proveñen do provedor. sudo-flix non ten control sobre as descargas e a súa procedencia.", + "downloadPlaylist": "Descargar lista", + "downloadSubtitle": "Descargar subtítulos actuais", + "downloadVideo": "Descargar video", + "hlsDisclaimer": "As descargas realizanse directamente dende o proovedor. sudo-flix non ten control sobre como se xestionan as descargas. Ten en conta que estás a descargar unha lista de reproducción HLS, dirixidos a usuarios familiarizados coa transmisión multimedia avanzada.", + "onAndroid": { + "1": "Para descargar en Android, fai click no botón de descarga e despois, na nova páxina, mantén presionadoo vídeo e selecciona gardar.", + "shortTitle": "Descargar / Android", + "title": "Descargando en Android" + }, + "onIos": { + "1": "Para descargar en iOS, fai clic no botón de descarga e despois, na nova páxina, fai click en , e despois Gardar en archivos .", + "shortTitle": "Descargar / iOS", + "title": "Descargando en iOS" + }, + "onPc": { + "1": "Nunha PC, fai click no botón de descargas e despois, na nova páxina, fai click dereito no video e selecciona Gardar vídeo como...", + "shortTitle": "Descargar / PC", + "title": "Descargando en PC" + }, + "title": "Descargar" + }, + "episodes": { + "button": "Episodios", + "emptyState": "Non hai episodios nesta temporada, Intentao máis tarde!", + "episodeBadge": "E{{episode}}", + "loadingError": "Error cargando a sesión", + "loadingList": "Cargando...", + "loadingTitle": "Cargando...", + "unairedEpisodes": "Un ou máis episodios nesta temporada foron desactivados porque non sairon aínda." + }, + "playback": { + "speedLabel": "Velocidade de reproducción", + "title": "Configuración de reproducción" + }, + "quality": { + "automaticLabel": "Calidade automática", + "hint": "Podes intentar <0>cambiar de fonte para obter diferentes opcións de calidade.", + "iosNoQuality": "Debido a limitacións definidas por Apple, a selección de calidade no está disponible en iOS para esta fonte. Podes intentar <0>cambiar a outra fonte para obter diferentes opcións de calidade.", + "title": "Calidade" + }, + "settings": { + "downloadItem": "Descargar", + "enableSubtitles": "Activar subtítulos", + "experienceSection": "Configuración de experiencia", + "playbackItem": "Configuración do playback", + "qualityItem": "Calidade", + "sourceItem": "Fonte do video", + "subtitleItem": "Configuración dos subtítulos", + "videoSection": "Configuración de video" + }, + "sources": { + "failed": { + "text": "Acaba de producirse un erro ao intentar atopar videos, por favor, intenta cunha fonte distinta.", + "title": "Erro ao retirar" + }, + "noEmbeds": { + "text": "Non puidemos atopar ningún embed, por favor, intenta cunha fonte diferente.", + "title": "No se atoparon embeds" + }, + "noStream": { + "text": "Nesta fonte non hai contidos sobre esta película ou episodio.", + "title": "Sin fonte" + }, + "title": "Fontes", + "unknownOption": "Descoñecido" + }, + "subtitles": { + "customChoice": "Seleccionar subtítulos dende o arquivo", + "customizeLabel": "Personalizar", + "offChoice": "Apagar", + "settings": { + "backlink": "Subtítulos personalizados", + "delay": "Retardo dos subtítulos", + "fixCapitals": "Arreglar capitalización" + }, + "title": "Subtítulos", + "unknownLanguage": "Descoñecido" + } + }, + "metadata": { + "api": { + "text": "Non puiden cargar os metadatos da API, por favor, comproba a túa conexión a internet.", + "title": "Non foi posible cargar os metadatos da API" + }, + "failed": { + "badge": "Erro", + "homeButton": "Ir ao inicio", + "text": "Non se puideron cargar os metadatos do contido de TMDB. Por favor, verifica se TMDB está caído ou bloqueado na túa conexión a internet.", + "title": "Error ao cargar os metadatos" + }, + "notFound": { + "badge": "Non atopado", + "homeButton": "Volver ao inicio", + "text": "Non puidemos encontrar o contenido que solicitache. Xa seña que se eliminara ou modificara a URL.", + "title": "No se pudo atopar ese contenido." + } + }, + "nextEpisode": { + "cancel": "Cancelar", + "next": "Seguinte episodio" + }, + "playbackError": { + "badge": "Error de reproducción", + "errors": { + "errorAborted": "A obtención do contido foi cancelada pola solicitude do usuario.", + "errorDecode": "A pesar de ser determinado previamente como utilizable, produciuse un erro ao intentar decodificar o recurso do contido, o que resultou nun erro.", + "errorGenericMedia": "Produxose un erro descoñecido no contido.", + "errorNetwork": "Produxose un erro de rede que impidideu obter o contido de maneira exitosa, a pesar de estar disponible anteriormente.", + "errorNotSupported": "O contido ou o proovedor do contido non é compatible." + }, + "homeButton": "Ir ao inicio", + "text": "Produxose un erro ao intentar reproducir o contenido. Por favor, inténtao de novo.", + "title": "Non se puido reproducir o video!" + }, + "scraping": { + "items": { + "failure": "Ocurreu un erro", + "notFound": "Non ten o video", + "pending": "Verificando vídeos..." + }, + "notFound": { + "badge": "Non atopado", + "detailsButton": "Mostrar detalles", + "homeButton": "Ir ao inicio", + "text": "Buscamos nos nosos proovedores e non puidemos atopar o contido que estás a buscar. Nós, non aloxamos o contido e non temos control sobre o que está dispoñible. Fai click en 'Mostrar detalles' a continuación para obter máis información.", + "title": "Non puidemos atopar eso" + } + }, + "time": { + "regular": "{{timeWatched}} / {{duration}}", + "remaining": "{{timeLeft}} restante • Finaliza ás {{timeFinished, datetime}}", + "shortRegular": "{{timeWatched}}", + "shortRemaining": "-{{timeLeft}}" + }, + "turnstile": { + "description": "Por favor, verifica que eres un humán completando o Captcha. Isto é para mantee sudo-flix seguro!", + "error": "Houbo un erro ao verificar a túa humanidade. Por favor, volve a intentalo.", + "title": "Necesitamos verificar que realmente eres un humán.", + "verifyingHumanity": "Verificando a túa humanidade…" + } + }, + "screens": { + "dmca": { + "text": "Benvido/a á páxona de contacto DMA de sudo-flix! Respetamos os dereitos de propiedade intelectual e queremos abordar calqueiro problema de dereitos de autor de maneira más rápida. Se crees que o teu traballo con dereitos de autor está sendo empregado incorrectamente na nosa plataforma, envñia un aviso DMCA detallado ao correo electrónico que se mostra a continuación. Inclue unha descripción do material con dereitos de autor, os seus datos de contacto e unha declaración de boa fé. Estamos comprometidos a resolver estos asuntos o máis rápido posible e agradecemos a túa cooperación para manter a sudo-flix como un lugar que respeta a creatividade e os dereitos de autor.", + "title": "DMCA" + }, + "loadingApp": "Cargando aplicación", + "loadingUser": "Cargando o teu perfil", + "loadingUserError": { + "logout": "Pechar sesión", + "reset": "Reiniciar servidor personalizado", + "text": "Erro ao cargar o teu perfil", + "textWithReset": "Erro ao cargar o teu perfil dende o teu servidor personalizado, queres reiniciar e volver ao servidor por defecto?" + }, + "migration": { + "failed": "Erro ao migrar os teus datos.", + "inProgress": "Porfavor, espera mientras migramos tus datos. Esto no debería llevar mucho." + } + }, + "settings": { + "account": { + "accountDetails": { + "deviceNameLabel": "Nome do dispositivo", + "deviceNamePlaceholder": "Teléfono persoal", + "editProfile": "Editar", + "logoutButton": "Pechar sesión" + }, + "actions": { + "delete": { + "button": "Eliminar conta", + "confirmButton": "Eliminar conta", + "confirmDescription": "Estas seguro/a que queres eliminar a túa conta? Todos os datos serán eliminados!", + "confirmTitle": "Estás seguro/a?", + "text": "Esta acción é irreversible. Todos os datos serán eliminados e nada poderá ser recuperado.", + "title": "Eliminar conta" + }, + "title": "Accións" + }, + "devices": { + "deviceNameLabel": "Nome do dispositivo", + "failed": "Erro ao cargar sesións", + "removeDevice": "Quitar", + "title": "Dispositivos" + }, + "profile": { + "finish": "Acabar de editar", + "firstColor": "Cór de perfil un", + "secondColor": "Cór de perfil dous", + "title": "Editar foto de perfil", + "userIcon": "Icono de usuario" + }, + "register": { + "cta": "Empezar", + "text": "Compartir o teu progreso entre dispositivos e mantelos sincronizados.", + "title": "Sincronizar á nube" + }, + "title": "Conta" + }, + "appearance": { + "activeTheme": "Activo", + "themes": { + "blue": "Azul", + "default": "Por defecto", + "gray": "Gris", + "red": "Vermello", + "teal": "Turquesa" + }, + "title": "Apariencia" + }, + "connections": { + "server": { + "description": "Se che gustaría conectar un servidor personalizado de backend para almacenar os teus datos, activa esto e indica a URL. <0>Instruccións.", + "label": "Servidor personalizado", + "urlLabel": "Servidor personalizado URL" + }, + "title": "Conexións", + "workers": { + "addButton": "Añadir novo", + "description": "Para facer que a aplicación funcione, todo o tráfico é organizado en proxies. Activa esta opción se queres empregar os teus propios workers. <0>Instruccións.", + "emptyState": "Non hai workers aínda, engade un abaixo", + "label": "Usar proxy workers personalizados", + "urlLabel": "URLs dos workers", + "urlPlaceholder": "https://" + } + }, + "reset": "Reinicio", + "save": "Gardar", + "sidebar": { + "info": { + "appVersion": "Versión da aplicación", + "backendUrl": "URL do Backend", + "backendVersion": "Versión do Backend", + "hostname": "Nome do Host (Hostname)", + "insecure": "Non seguro", + "notLoggedIn": "Non iniciache sesión", + "secure": "Seguro", + "title": "Información da aplicación", + "unknownVersion": "Descoñecido", + "userId": "ID do usuario" + } + }, + "subtitles": { + "backgroundLabel": "Opacidade do fondo", + "colorLabel": "Cór", + "previewQuote": "Non debo temer. O medo é o asasino da mente.", + "textSizeLabel": "Tamaño da fonte", + "title": "Subtítulos" + }, + "unsaved": "Tes cambios sen gardar" + } +} diff --git a/src/assets/locales/gu.json b/src/assets/locales/gu.json new file mode 100644 index 00000000..5be167a8 --- /dev/null +++ b/src/assets/locales/gu.json @@ -0,0 +1,428 @@ +{ + "about": { + "description": "મૂવી-વેબ એક વેબ એપ્લિકેશન છે જે ઇન્ટરનેટ પર સ્ટ્રીમ માટે શોધ કરે છે. ટીમ વધુમાં વધુ કન્ટેન્ટ ઉપભોગ કરવાની દ્રષ્ટિકોણમાં છે.", + "faqTitle": "સામાન્ય પ્રશ્નો", + "q1": { + "body": "મૂવી-વેબ કોઈપણ કન્ટેન્ટ હોસ્ટ કરતું નથી. જ્યારે તમે જોવા માટે કંઈક પર ક્લિક કરો છો, ત્યારે ઈન્ટરનેટ પસંદ કરેલ મીડિયા માટે શોધાય છે (લોડિંગ સ્ક્રીન પર અને 'વિડિયો સ્ત્રોતો' ટૅબમાં તમે જોઈ શકો છો કે તમે કયા સ્રોતનો ઉપયોગ કરી રહ્યાં છો). મીડિયા ક્યારેય મૂવી-વેબ દ્વારા અપલોડ થતું નથી, બધું આ સર્ચિંગ મિકેનિઝમ દ્વારા થાય છે.", + "title": "કન્ટેન્ટ ક્યાંથી આવે છે?" + }, + "q2": { + "body": "શો અથવા મૂવીની વિનંતી કરવી શક્ય નથી, મૂવી-વેબ કોઈપણ કન્ટેન્ટ નું સંચાલન કરતું નથી. બધી કન્ટેન્ટ ઇન્ટરનેટ પરના સ્ત્રોતો દ્વારા જોવામાં આવે છે.", + "title": "હું શો અથવા મૂવીની વિનંતી ક્યાં કરી શકું?" + }, + "q3": { + "body": "અમારા શોધ પરિણામો ધ મૂવી ડેટાબેઝ (TMDB) દ્વારા સંચાલિત છે અને અમારા સ્ત્રોતોમાં ખરેખર કન્ટેન્ટ છે કે કેમ તે ધ્યાનમાં લીધા વિના પ્રદર્શિત થાય છે.", + "title": "શો અથવા મૂવીના શોધ પરિણામો દર્શાવવામાં આવે છે, પરંતુ હું તેને કેટલાક કારણોથી ચલાવી શકતો નથી?" + }, + "title": "મૂવી-વેબ વિશે" + }, + "actions": { + "copied": "કોપી કર્યું", + "copy": "કૉપી" + }, + "auth": { + "createAccount": "હજુ સુધી એકાઉન્ટ નથી? <0>એકાઉન્ટ બનાવો.", + "deviceNameLabel": "ડિવાઇસ નામ", + "deviceNamePlaceholder": "વ્યક્તિગત ફોન", + "generate": { + "description": "તમારો પાસફ્રેઝ તમારા યુઝરનેમ અને પાસવર્ડ તરીકે કાર્ય કરે છે. તેને સુરક્ષિત રાખવાની ખાતરી કરો કારણ કે તમારે તમારા એકાઉન્ટમાં લૉગિન કરવા માટે તેને દાખલ કરવાની જરૂર પડશે", + "next": "મેં મારો પાસફ્રેઝ સેવ કર્યો છે", + "passphraseFrameLabel": "પાસફ્રેઝ", + "title": "તમારો પાસફ્રેઝ" + }, + "hasAccount": "પહેલેથી જ એકાઉન્ટ છે? <0>અહીં લોગિન કરો.", + "login": { + "description": "તમારા એકાઉન્ટમાં લૉગિન કરવા માટે કૃપા કરીને તમારો પાસફ્રેઝ દાખલ કરો", + "deviceLengthError": "કૃપા કરીને ડિવાઇસનું નામ દાખલ કરો", + "passphraseLabel": "12-શબ્દનો પાસફ્રેઝ", + "passphrasePlaceholder": "પાસફ્રેઝ", + "submit": "લોગિન કરો", + "title": "તમારા એકાઉન્ટમાં લોગિન કરો", + "validationError": "ખોટો અથવા અપૂર્ણ પાસફ્રેઝ" + }, + "register": { + "information": { + "color1": "પ્રોફાઇલ રંગ એક", + "color2": "પ્રોફાઇલ રંગ બે", + "header": "તમારા ઉપકરણ માટે નામ દાખલ કરો અને રંગો અને તમારી પસંદગીના વપરાશકર્તા ચિહ્ન પસંદ કરો", + "icon": "વપરાશકર્તા ચિહ્ન", + "next": "આગળ", + "title": "એકાઉન્ટ માહિતી" + } + }, + "trust": { + "failed": { + "text": "શું તમે તેને યોગ્ય રીતે ગોઠવ્યું છે?", + "title": "સર્વર સુધી પહોંચવામાં નિષ્ફળ" + }, + "host": "તમે <0>{{hostname}} થી કનેક્ટ કરી રહ્યાં છો - એકાઉન્ટ બનાવતા પહેલા કૃપા કરીને ખાતરી કરો કે તમે તેના પર વિશ્વાસ કરો છો", + "no": "પાછા જાઓ", + "title": "શું તમે આ સર્વર પર વિશ્વાસ કરો છો?", + "yes": "મને આ સર્વર પર વિશ્વાસ છે" + }, + "verify": { + "description": "કૃપા કરીને તમારો પાસફ્રેઝ એન્ટર કરો, જેથી એકાઉન્ટ બનાવી શકાય", + "invalidData": "ડેટા માન્ય નથી", + "noMatch": "પાસફ્રેઝ મેળ ખાતો નથી", + "passphraseLabel": "તમારો 12-શબ્દનો પાસફ્રેઝ", + "recaptchaFailed": "ReCaptcha માન્યતા નિષ્ફળ", + "register": "ખાતું બનાવો", + "title": "તમારા પાસફ્રેઝની પુષ્ટિ કરો" + } + }, + "errors": { + "badge": "તે તૂટી ગયું", + "details": "ભૂલ વિગતો", + "reloadPage": "પેજને ફરીથી લોડ કરો", + "showError": "ભૂલ વિગતો બતાવો", + "title": "અમને એક ભૂલ આવી!" + }, + "footer": { + "legal": { + "disclaimer": "અસ્વીકરણ", + "disclaimerText": "મૂવી-વેબ કોઈપણ ફાઇલોને હોસ્ટ કરતું નથી, તે ફક્ત 3ર્ડ પાર્ટી સર્વિસોના સાથે લિંક કરે છે. ફાઇલ હોસ્ટ્સ અને પ્રદાતાઓ સાથે કાનૂની મુદ્દાઓ ઉઠાવવા જોઈએ. વિડિયો પ્રદાતાઓ દ્વારા બતાવવામાં આવેલી કોઈપણ મીડિયા ફાઇલો માટે sudo-flix જવાબદાર નથી." + }, + "links": { + "discord": "ડિસ્કોર્ડ", + "dmca": "DMCA", + "github": "ગિટહબ" + }, + "tagline": "આ ઓપન સોર્સ સ્ટ્રીમિંગ એપ વડે તમારા મનપસંદ શો અને મૂવીઝ જુઓ." + }, + "global": { + "name": "મૂવી-વેબ", + "pages": { + "about": "વિશે", + "dmca": "DMCA", + "login": "પ્રવેશ કરો", + "pagetitle": "{{title}} - મૂવી-વેબ", + "register": "નોંધણી કરો", + "settings": "સેટિંગ્સ" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "બુકમાર્ક્સ" + }, + "continueWatching": { + "sectionTitle": "જોવાનું ચાલુ રાખો" + }, + "mediaList": { + "stopEditing": "સંપાદન બંધ કરો" + }, + "search": { + "allResults": "અમારી પાસે એટલું જ છે!", + "failed": "મીડિયા શોધવામાં નિષ્ફળ, ફરી પ્રયાસ કરો!", + "loading": "લોડ થાય છે...", + "noResults": "અમે કંઈપણ શોધી શક્યા નથી!", + "placeholder": "તમે શું જોવા માંગો છો?", + "sectionTitle": "શોધ પરિણામો" + }, + "titles": { + "day": { + "default": "તમે આ બપોરે શું જોવા માંગો છો?", + "extra": ["સાહસિક લાગે છે? જુરાસિક પાર્ક યોગ્ય પસંદગી હોઈ શકે છે."] + }, + "morning": { + "default": "તમે આ સવારે શું જોવા માંગો છો?", + "extra": ["હું સાંભળું છું કે Before Sunrise સારું છે"] + }, + "night": { + "default": "તમે આજે રાત્રે શું જોવા માંગો છો?", + "extra": [ + "થાકી ગયા છો? મેં સાંભળ્યું છે કે The Exorcise ફિલ્મ સારી છે." + ] + } + } + }, + "media": { + "episodeDisplay": "સિઝન{{season}} એપિસોડ{{episode}}", + "types": { + "movie": "ફિલ્મ", + "show": "શો" + } + }, + "navigation": { + "banner": { + "offline": "તમારું ઇન્ટરનેટ કનેક્શન તપાસો" + }, + "menu": { + "about": "અમારા વિશે", + "donation": "દાન કરો", + "logout": "લૉગ આઉટ", + "register": "cloud સાથે સમન્વયિત કરો", + "settings": "સેટિંગ્સ", + "support": "આધાર" + } + }, + "notFound": { + "badge": "મળી નથી", + "goHome": "ઘરે પાછા", + "message": "અમે બધે જોયું: ડબ્બાની નીચે, કબાટમાં, પ્રોક્સીની પાછળ, પરંતુ આખરે તમે જે page શોધી રહ્યાં છો તે શોધી શક્યા નહીં.", + "title": "page શોધી શક્યું નથી" + }, + "overlays": { + "close": "બંધ" + }, + "player": { + "back": { + "default": "ઘરે પાછા", + "short": "પાછા" + }, + "casting": { + "enabled": "Device પર કાસ્ટ કરી રહ્યું છે..." + }, + "menus": { + "downloads": { + "disclaimer": "ડાઉનલોડ સીધા પ્રદાતા પાસેથી લેવામાં આવે છે. મૂવી-વેબ ડાઉનલોડ્સ કેવી રીતે પ્રદાન કરવામાં આવે છે તેના પર નિયંત્રણ નથી.", + "downloadPlaylist": "પ્લેલિસ્ટ ડાઉનલોડ કરો", + "downloadSubtitle": "વર્તમાન ઉપશીર્ષક ડાઉનલોડ કરો", + "downloadVideo": "વિડિઓ ડાઉનલોડ કરો", + "hlsDisclaimer": "ડાઉનલોડ સીધા પ્રદાતા પાસેથી લેવામાં આવે છે. મૂવી-વેબ ડાઉનલોડ્સ કેવી રીતે પ્રદાન કરવામાં આવે છે તેના પર નિયંત્રણ નથી. કૃપા કરીને નોંધો કે તમે HLS પ્લેલિસ્ટ ડાઉનલોડ કરી રહ્યાં છો, આ અદ્યતન મલ્ટીમીડિયા સ્ટ્રીમિંગથી પરિચિત વપરાશકર્તાઓ માટે બનાવાયેલ છે.", + "onAndroid": { + "1": "Android પર ડાઉનલોડ કરવા માટે, ડાઉનલોડ બટનને ક્લિક કરો પછી, નવા પૃષ્ઠ પર, વિડિઓ પર ટેપ કરો અને પકડી રાખો, પછી સાચવો પસંદ કરો.", + "shortTitle": "ડાઉનલોડ કરો / Android", + "title": "એન્ડ્રોઇડ પર ડાઉનલોડ કરી રહ્યું છે" + }, + "onIos": { + "1": "iOS પર ડાઉનલોડ કરવા માટે, ડાઉનલોડ બટનને ક્લિક કરો પછી, નવા પૃષ્ઠ પર, પર ક્લિક કરો, પછી ફાઇલોમાં સાચવો .", + "shortTitle": "ડાઉનલોડ કરો / iOS", + "title": "iOS પર ડાઉનલોડ કરી રહ્યું છે" + }, + "onPc": { + "1": "પીસી પર, ડાઉનલોડ બટનને ક્લિક કરો પછી, નવા પૃષ્ઠ પર, વિડિઓ પર જમણું ક્લિક કરો અને Save video as પસંદ કરો", + "shortTitle": "ડાઉનલોડ કરો / PC", + "title": "PC પર ડાઉનલોડ કરી રહ્યું છે" + }, + "title": "ડાઉનલોડ કરો" + }, + "episodes": { + "button": "એપિસોડ્સ", + "emptyState": "આ સિઝનમાં કોઈ એપિસોડ નથી, પછીથી ફરી તપાસો!", + "episodeBadge": "એપિસોડ{{episode}}", + "loadingError": "સીઝન લોડ કરવામાં ભૂલ", + "loadingList": "લોડ થાય છે...", + "loadingTitle": "લોડ થાય છે...", + "unairedEpisodes": "આ સિઝનમાં એક અથવા વધુ એપિસોડ અક્ષમ કરવામાં આવ્યા છે કારણ કે તે હજુ સુધી પ્રસારિત થયા નથી." + }, + "playback": { + "speedLabel": "પ્લેબેક ઝડપ", + "title": "પ્લેબેક સેટિંગ્સ" + }, + "quality": { + "automaticLabel": "આપોઆપ ગુણવત્તા", + "hint": "તમે વિવિધ ગુણવત્તા વિકલ્પો મેળવવા માટે <0>સ્રોત સ્વિચ કરવાનો પ્રયાસ કરી શકો છો.", + "iosNoQuality": "Apple દ્વારા નિર્ધારિત મર્યાદાઓને લીધે, આ સ્ત્રોત માટે ગુણવત્તા પસંદગી iOS પર ઉપલબ્ધ નથી. તમે વિવિધ ગુણવત્તા વિકલ્પો મેળવવા માટે <0>બીજા સ્ત્રોત પર સ્વિચ કરવાનો પ્રયાસ કરી શકો છો.", + "title": "ગુણવત્તા" + }, + "settings": { + "downloadItem": "ડાઉનલોડ કરો", + "enableSubtitles": "સબટાઈટલ સક્ષમ કરો", + "experienceSection": "જોવાનો અનુભવ", + "playbackItem": "પ્લેબેક સેટિંગ્સ", + "qualityItem": "ગુણવત્તા", + "sourceItem": "વિડિઓ સ્ત્રોતો", + "subtitleItem": "ઉપશીર્ષક સેટિંગ્સ", + "videoSection": "વિડિઓ સેટિંગ્સ" + }, + "sources": { + "failed": { + "text": "કોઈપણ વિડિઓઝ શોધવાનો પ્રયાસ કરતી વખતે ભૂલ આવી હતી, કૃપા કરીને કોઈ અલગ સ્રોતનો પ્રયાસ કરો.", + "title": "ઉઝરડા કરવામાં નિષ્ફળ" + }, + "noEmbeds": { + "text": "અમે કોઈપણ એમ્બેડ શોધવામાં અસમર્થ હતા, કૃપા કરીને કોઈ અલગ સ્રોતનો પ્રયાસ કરો.", + "title": "કોઈ એમ્બેડ મળ્યાં નથી" + }, + "noStream": { + "text": "આ સ્રોતમાં આ મૂવી અથવા શો માટે કોઈ સ્ટ્રીમ નથી.", + "title": "કોઈ પ્રવાહ નથી" + }, + "title": "સ્ત્રોતો", + "unknownOption": "અજ્ઞાત" + }, + "subtitles": { + "customChoice": "ફાઇલમાંથી ઉપશીર્ષક પસંદ કરો", + "customizeLabel": "કસ્ટમાઇઝ કરો", + "offChoice": "બંધ", + "settings": { + "backlink": "કસ્ટમ સબટાઈટલ", + "delay": "ઉપશીર્ષક વિલંબ", + "fixCapitals": "મૂડીકરણ ઠીક કરો" + }, + "title": "સબટાઈટલ", + "unknownLanguage": "અજ્ઞાત" + } + }, + "metadata": { + "api": { + "text": "API મેટાડેટા લોડ કરી શકાયું નથી, કૃપા કરીને તમારું ઇન્ટરનેટ કનેક્શન તપાસો.", + "title": "API મેટાડેટા લોડ કરવામાં નિષ્ફળ" + }, + "failed": { + "badge": "નિષ્ફળ", + "homeButton": "ઘર જાઓ", + "text": "TMDB માંથી મીડિયાનો મેટાડેટા લોડ કરી શકાયો નથી. કૃપા કરીને તપાસો કે તમારા ઇન્ટરનેટ કનેક્શન પર TMDB બંધ છે અથવા અવરોધિત છે.", + "title": "મેટાડેટા લોડ કરવામાં નિષ્ફળ" + }, + "notFound": { + "badge": "મળી નથી", + "homeButton": "ઘરે પાછા", + "text": "તમે વિનંતી કરેલ મીડિયા અમે શોધી શક્યા નથી. કાં તો તે દૂર કરવામાં આવ્યું છે અથવા તમે URL સાથે ચેડા કર્યા છે.", + "title": "તે મીડિયા શોધી શક્યું નથી." + } + }, + "nextEpisode": { + "cancel": "રદ કરો", + "next": "આગામી એપિસોડ" + }, + "playbackError": { + "badge": "પ્લેબેક ભૂલ", + "errors": { + "errorAborted": "વપરાશકર્તાની વિનંતીથી મીડિયાનું આનયન અટકાવવામાં આવ્યું હતું.", + "errorDecode": "અગાઉ ઉપયોગ કરી શકાય તેવું નક્કી કરવામાં આવ્યું હોવા છતાં, મીડિયા સંસાધનને ડીકોડ કરવાનો પ્રયાસ કરતી વખતે એક ભૂલ આવી, પરિણામે ભૂલ આવી.", + "errorGenericMedia": "અજ્ઞાત મીડિયા ભૂલ આવી.", + "errorNetwork": "કેટલીક પ્રકારની નેટવર્ક ભૂલ આવી છે જેણે અગાઉ ઉપલબ્ધ હોવા છતાં મીડિયાને સફળતાપૂર્વક આનયન થવાથી અટકાવ્યું હતું.", + "errorNotSupported": "મીડિયા અથવા મીડિયા પ્રદાતા ઑબ્જેક્ટ સપોર્ટેડ નથી." + }, + "homeButton": "ઘર જાઓ", + "text": "મીડિયા ચલાવવાનો પ્રયાસ કરવામાં ભૂલ આવી હતી. મહેરબાની કરીને ફરીથી પ્રયતન કરો.", + "title": "વિડિઓ ચલાવવામાં નિષ્ફળ!" + }, + "scraping": { + "items": { + "failure": "ભૂલ આવી", + "notFound": "વિડિયો નથી", + "pending": "વિડિઓઝ માટે તપાસ કરી રહ્યું છે..." + }, + "notFound": { + "badge": "મળી નથી", + "detailsButton": "વિગતો બતાવો", + "homeButton": "ઘર જાઓ", + "text": "અમે અમારા પ્રદાતાઓ દ્વારા શોધ કરી છે અને તમે શોધી રહ્યાં છો તે મીડિયા શોધી શકતા નથી! અમે મીડિયાને હોસ્ટ કરતા નથી અને જે ઉપલબ્ધ છે તેના પર કોઈ નિયંત્રણ નથી. વધુ વિગતો માટે કૃપા કરીને નીચે 'વિગતો બતાવો' પર ક્લિક કરો.", + "title": "અમે તે શોધી શક્યા નથી" + } + }, + "time": { + "regular": "{{timeWatched}} / {{duration}}", + "remaining": "{{timeLeft}} બાકી • {{timeFinished, datetime}} વાગ્યે સમાપ્ત થાય છે", + "shortRegular": "{{timeWatched}}", + "shortRemaining": "-{{timeLeft}}" + }, + "turnstile": { + "description": "કૃપા કરીને જમણી બાજુએ કૅપ્ચા પૂર્ણ કરીને ચકાસો કે તમે માનવ છો. આ મૂવી-વેબને સુરક્ષિત રાખવા માટે છે!", + "error": "તમારી માનવતા ચકાસવામાં નિષ્ફળ. મહેરબાની કરીને ફરીથી પ્રયત્ન કરો.", + "title": "અમારે ચકાસવાની જરૂર છે કે તમે માનવ છો.", + "verifyingHumanity": "તમારી માનવતા ચકાસવી..." + } + }, + "screens": { + "dmca": { + "text": "મૂવી-વેબના DMCA સંપર્ક પૃષ્ઠ પર આપનું સ્વાગત છે! અમે બૌદ્ધિક સંપદા અધિકારોનો આદર કરીએ છીએ અને કોઈપણ કોપીરાઈટની ચિંતાઓને ઝડપથી ઉકેલવા માંગીએ છીએ. જો તમે માનતા હોવ કે તમારા કૉપિરાઇટ કરેલા કાર્યનો અમારા પ્લેટફોર્મ પર અયોગ્ય ઉપયોગ કરવામાં આવ્યો છે, તો કૃપા કરીને નીચે આપેલા ઇમેઇલ પર વિગતવાર DMCA સૂચના મોકલો. કૃપા કરીને કૉપિરાઇટ કરેલી સામગ્રીનું વર્ણન, તમારી સંપર્ક વિગતો અને સદ્ભાવનાની માન્યતાનું નિવેદન શામેલ કરો. અમે આ બાબતોને તાત્કાલિક ઉકેલવા માટે પ્રતિબદ્ધ છીએ અને મૂવી-વેબને સર્જનાત્મકતા અને કૉપિરાઇટનો આદર કરતી જગ્યા રાખવા માટે તમારા સહકારની પ્રશંસા કરીએ છીએ.", + "title": "DMCA" + }, + "loadingApp": "એપ્લિકેશન લોડ કરી રહ્યું છે", + "loadingUser": "તમારી પ્રોફાઇલ લોડ કરી રહ્યું છે", + "loadingUserError": { + "logout": "લૉગ આઉટ", + "reset": "કસ્ટમ સર્વર રીસેટ કરો", + "text": "તમારી પ્રોફાઇલ લોડ કરવામાં નિષ્ફળ", + "textWithReset": "તમારા કસ્ટમ સર્વરથી તમારી પ્રોફાઇલ લોડ કરવામાં નિષ્ફળ, ડિફોલ્ટ સર્વર પર પાછા રીસેટ કરવા માંગો છો?" + }, + "migration": { + "failed": "તમારો ડેટા સ્થાનાંતરિત કરવામાં નિષ્ફળ.", + "inProgress": "કૃપા કરીને પકડી રાખો, અમે તમારો ડેટા સ્થાનાંતરિત કરી રહ્યાં છીએ. આમાં લાંબો સમય લાગવો જોઈએ નહીં." + } + }, + "settings": { + "account": { + "accountDetails": { + "deviceNameLabel": "ડિવાઇસ નામ", + "deviceNamePlaceholder": "વ્યક્તિગત ફોન", + "editProfile": "સંપાદિત કરો", + "logoutButton": "લૉગ આઉટ" + }, + "actions": { + "delete": { + "button": "એકાઉન્ટ કાઢી નાખો", + "confirmButton": "એકાઉન્ટ કાઢી નાખો", + "confirmDescription": "શું તમે ખરેખર તમારું એકાઉન્ટ કાઢી નાખવા માંગો છો? તમારો બધો ડેટા ખોવાઈ જશે!", + "confirmTitle": "શું તમને ખાતરી છે?", + "text": "આ ક્રિયા બદલી ન શકાય તેવી છે. તમામ ડેટા કાઢી નાખવામાં આવશે અને કંઈપણ પુનઃપ્રાપ્ત કરી શકાશે નહીં.", + "title": "એકાઉન્ટ કાઢી નાખો" + }, + "title": "ક્રિયાઓ" + }, + "devices": { + "deviceNameLabel": "ડિવાઇસ નામ", + "failed": "સત્રો લોડ કરવામાં નિષ્ફળ", + "removeDevice": "દૂર કરો", + "title": "ઉપકરણો" + }, + "profile": { + "finish": "સંપાદન સમાપ્ત કરો", + "firstColor": "પ્રોફાઇલ રંગ એક", + "secondColor": "પ્રોફાઇલ રંગ બે", + "title": "પ્રોફાઇલ ચિત્ર સંપાદિત કરો", + "userIcon": "વપરાશકર્તા ચિહ્ન" + }, + "register": { + "cta": "શરૂ કરો", + "text": "ઉપકરણો વચ્ચે તમારી ઘડિયાળની પ્રગતિ શેર કરો અને તેમને સમન્વયિત રાખો.", + "title": "cloud સાથે સમન્વયિત કરો" + }, + "title": "એકાઉન્ટ" + }, + "appearance": { + "activeTheme": "સક્રિય", + "themes": { + "blue": "વાદળી", + "default": "ડિફૉલ્ટ", + "gray": "ભૂખરા", + "red": "લાલ", + "teal": "ટીલ" + }, + "title": "દેખાવ" + }, + "connections": { + "server": { + "description": "જો તમે તમારો ડેટા સંગ્રહિત કરવા માટે કસ્ટમ બેકએન્ડ સાથે જોડાવા માંગતા હો, તો આને સક્ષમ કરો અને URL પ્રદાન કરો.", + "label": "કસ્ટમ સર્વર", + "urlLabel": "કસ્ટમ સર્વર URL" + }, + "title": "જોડાણો", + "workers": { + "addButton": "નવો કાર્યકર ઉમેરો", + "description": "એપ્લિકેશન કાર્ય કરવા માટે, તમામ ટ્રાફિકને પ્રોક્સીઓ દ્વારા રૂટ કરવામાં આવે છે. જો તમે તમારા પોતાના કામદારોને લાવવા માંગતા હોવ તો આને સક્ષમ કરો.", + "emptyState": "હજુ સુધી કોઈ કામદારો નથી, નીચે એક ઉમેરો", + "label": "કસ્ટમ પ્રોક્સી કાર્યકરોનો ઉપયોગ કરો", + "urlLabel": "વર્કર URL", + "urlPlaceholder": "https://" + } + }, + "reset": "રીસેટ કરો", + "save": "સાચવો", + "sidebar": { + "info": { + "appVersion": "એપ્લિકેશન સંસ્કરણ", + "backendUrl": "બેકએન્ડ URL", + "backendVersion": "બેકએન્ડ સંસ્કરણ", + "hostname": "હોસ્ટનામ", + "insecure": "અસુરક્ષિત", + "notLoggedIn": "તમે લૉગ ઇન નથી", + "secure": "સુરક્ષિત", + "title": "એપ્લિકેશન માહિતી", + "unknownVersion": "અજ્ઞાત", + "userId": "વપરાશકર્તા ID" + } + }, + "subtitles": { + "backgroundLabel": "પૃષ્ઠભૂમિ અસ્પષ્ટ", + "colorLabel": "રંગ", + "previewQuote": "મારે ડરવું જોઈએ નહીં. ડર એ મનનો હત્યારો છે.", + "textSizeLabel": "ટેક્સ્ટનું કદ", + "title": "સબટાઈટલ" + }, + "unsaved": "તમારી પાસે વણસાચવેલા ફેરફારો છે" + } +} diff --git a/src/assets/locales/he.json b/src/assets/locales/he.json new file mode 100644 index 00000000..9ae189e6 --- /dev/null +++ b/src/assets/locales/he.json @@ -0,0 +1,526 @@ +{ + "about": { + "description": "sudo-flix הוא יישום אינטרנט המחפש באינטרנט אחר זרמים. הצוות שואף לגישה מינימליסטית ברובה לצריכת תוכן.", + "faqTitle": "שאלות נפוצות", + "q1": { + "body": "sudo-flix אינו מארח תוכן כלשהו. כאשר אתה לוחץ על משהו לצפייה, האינטרנט מחפש את המדיה שנבחרה (במסך הטעינה ובכרטיסייה 'מקורות וידאו' תוכל לראות באיזה מקור אתה משתמש). מדיה אף פעם לא מועלת על ידי sudo-flix, הכל מתבצע דרך מנגנון חיפוש זה.", + "title": "מאיפה התוכן?" + }, + "q2": { + "body": "לא ניתן לבקש תוכנית או סרט, sudo-flix לא מנהלת שום תוכן. כל התוכן נצפה דרך מקורות באינטרנט.", + "title": "איפה אני יכול לבקש תוכנית או סרט?" + }, + "q3": { + "body": "תוצאות החיפוש שלנו מופעלות על ידי The Movie Database (TMDB) ומוצגות ללא קשר אם למקורות שלנו יש את התוכן.", + "title": "תוצאות החיפוש מציגות את התוכנית או הסרט, למה אני לא יכול להפעיל אותם?" + }, + "title": "על sudo-flix" + }, + "actions": { + "copied": "הועתק", + "copy": "להעתיק" + }, + "auth": { + "createAccount": "אין לך עדיין חשבון? <0>צור חשבון.", + "deviceNameLabel": "שם המכשיר", + "deviceNamePlaceholder": "מכשיר אישי", + "generate": { + "description": "ביטוי הסיסמה שלך משמש כשם המשתמש והסיסמה שלך. אנא הקפד לשמור אותו בטוח מכיוון שתצטרך להזין אותו כדי להתחבר לחשבון שלך", + "next": "אני שמרתי את משפט הסיסמה שלי", + "passphraseFrameLabel": "ביטוי סיסמה", + "title": "משפט הסיסמה שלך" + }, + "hasAccount": "כבר יש לך חשבון? <0>התחבר כאן.", + "login": { + "description": "אנא הזן את ביטוי הסיסמה שלך כדי להתחבר לחשבונך", + "deviceLengthError": "אנא הזן שם מכשיר", + "passphraseLabel": "ביטוי סיסמא בעל 12 מילים", + "passphrasePlaceholder": "ביטוי סיסמא", + "submit": "התחבר", + "title": "התחבר לחשבונך", + "validationError": "ביטוי סיסמה שגוי או לא שלם" + }, + "register": { + "information": { + "color1": "צבע פרופיל ראשון", + "color2": "צבע פרופיל שני", + "header": "הזן שם למכשירך ובחר צבעים וסמל משתמש לפי בחירתך", + "icon": "סמל משתמש", + "next": "הבא", + "title": "פרטי חשבון" + } + }, + "trust": { + "failed": { + "text": "האם הגדרת את זה נכון?", + "title": "הגישה לשרת נכשלה" + }, + "host": "אתה מתחבר אל <0>{{hostname}} - אנא אשר שאתה סומך עליו לפני יצירת חשבון", + "no": "חזור", + "title": "האם אתה סומך על שרת זה?", + "yes": "אני בוטח בשרת זה" + }, + "verify": { + "description": "אנא הזן את משפט הסיסמה שלך מקודם כדי לאשר ששמרת אותו וכדי ליצור את חשבונך", + "invalidData": "הנתונים אינם חוקיים", + "noMatch": "ביטוי הסיסמה אינו תואם", + "passphraseLabel": "ביטוי הסיסמה שלך בעל 12 מילים", + "recaptchaFailed": "אימות ReCaptcha נכשל", + "register": "צור חשבון", + "title": "אשר את ביטוי הסיסמה שלך" + } + }, + "errors": { + "badge": "זה נשבר", + "details": "פרטי שגיאה", + "reloadPage": "טען מחדש את הדף", + "showError": "הצג פרטי שגיאה", + "title": "נתקלנו בשגיאה!" + }, + "footer": { + "legal": { + "disclaimer": "תנית ויתור", + "disclaimerText": "sudo-flix אינו מארח קבצים, הוא רק מקשר לשירותי צד שלישי. יש להתייחס לסוגיות משפטיות עם המארחים והספקים של הקבצים. sudo-flix אינה אחראית לכל קבצי מדיה המוצגים על ידי ספקי הווידאו." + }, + "links": { + "discord": "דיסקורד", + "dmca": "DMCA", + "github": "גיטהאב" + }, + "tagline": "צפה בתוכניות ובסרטים האהובים עליך עם אפליקציית סטרימינג זו בקוד פתוח." + }, + "global": { + "name": "sudo-flix", + "pages": { + "about": "אודות", + "dmca": "זכויות יוצרים", + "login": "התחבר", + "onboarding": "הכנה", + "pagetitle": "{{title}} - sudo-flix", + "register": "הירשם", + "settings": "הגדרות" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "סימניות" + }, + "continueWatching": { + "sectionTitle": "המשך לצפות" + }, + "mediaList": { + "stopEditing": "הפסק עריכה" + }, + "search": { + "allResults": "זה כל מה שיש לנו!", + "failed": "לא הצלחנו למצוא מדיה, נסה שוב!", + "loading": "טוען...", + "noResults": "לא יכולנו למצוא כלום!", + "placeholder": "במה תרצה לצפות?", + "sectionTitle": "תוצאות חיפוש" + }, + "titles": { + "day": { + "default": "במה תרצה לצפות באחר צהריים זה?", + "extra": ["מרגיש הרפתקני? פארק היורה עשוי להיות הבחירה המושלמת."] + }, + "morning": { + "default": "במה תרצה לצפות הבוקר?", + "extra": ["שמעתי שלפני הזריחה זה סרט טוב"] + }, + "night": { + "default": "במה תרצה לצפות הלילה?", + "extra": ["רוצה לישון? הפיג'מות היא בחירה מצויינת."] + } + } + }, + "media": { + "episodeDisplay": "S{{season}} E{{episode}}", + "types": { + "movie": "סרט", + "show": "סדרה" + } + }, + "navigation": { + "banner": { + "offline": "תבדוק את חיבור האינטרנט שלך" + }, + "menu": { + "about": "עלינו", + "donation": "לתרום", + "logout": "להתנתק", + "register": "סנכרון לענן", + "settings": "הגדרות", + "support": "תמיכה" + } + }, + "notFound": { + "badge": "לא נמצא", + "goHome": "בחזרה לבית", + "message": "חיפשנו בכל מקום: מתחת לפחים, בארון, מאחורי ה-proxy אבל בסופו של דבר לא מצאנו את הדף שאתה מחפש.", + "title": "לא יכולנו למצוא את דף זה" + }, + "onboarding": { + "defaultConfirm": { + "cancel": "בטל", + "confirm": "השתמש בהגדרות ברירת המחדל", + "description": "הגדרת ברירת המחדל אינה כוללת את הזרמים הטובים ביותר ויכולה להיות איטית בצורה בלתי נסבלת.", + "title": "אתה בטוח?" + }, + "extension": { + "back": "חזור", + "explainer": "באמצעות תוסף הדפדפן, אתה יכול לקבל את הזרמים הטובים ביותר שיש לנו להציע. עם התקנה פשוטה בלבד.", + "extensionHelp": "אם התקנת את התוסף אך הוא לא מזוהה. פתח את התוסף דרך תפריט התוספות של הדפדפן שלך ובצע את השלבים שעל המסך.", + "status": { + "disallowed": "התוסף אינו מפועל עבור דף זה", + "disallowedAction": "אפשר תוסף", + "failed": "בקשת הסטטוס נכשלה", + "loading": "מחכה שתתקין את התוסף", + "outdated": "גרסת התוסף ישנה מדי", + "success": "התוסף עובד כמצופה!" + }, + "submit": "המשך", + "title": "נתחיל עם התוסף" + }, + "proxy": { + "back": "חזור", + "explainer": "עם שיטת הפרוקסי, אתה יכול לקבל זרמים באיכות מעולה על ידי יצירת פרוקסי בשירות עצמי.", + "input": { + "errorConnection": "לא ניתן להתחבר לפרוקסי", + "errorInvalidUrl": "כתובת לא תקינה", + "errorNotProxy": "ציפה לפרוקסי אבל קיבל אתר", + "label": "כתובת פרוקסי", + "placeholder": "https://" + }, + "link": "למד כיצד ליצור פרוקסי", + "submit": "שלח פרוקסי", + "title": "בואו ניצור פרוקסי חדש" + }, + "start": { + "explainer": "כדי לקבל את הזרמים הכי טובים שאפשר. תצטרך לבחור באיזו שיטת סטרימינג תרצה להשתמש.", + "options": { + "default": { + "text": "אני לא רוצה זרמים באיכות טובה,<0 /> <1>השתמש בהגדרת ברירת המחדל" + }, + "extension": { + "action": "התקן תוסף", + "description": "התקן תוסף דפדפן וקבל גישה למקורות הטובים ביותר.", + "quality": "איכות מעולה", + "title": "תוסף הדפדפן" + }, + "proxy": { + "action": "הגדר פרוקסי", + "description": "הגדר פרוקסי תוך 5 דקות בלבד וקבל גישה למקורות מעולים.", + "quality": "איכות טובה", + "title": "פרוקסי מותאם אישית" + } + }, + "title": "בוא נעשה לך התקנה עם sudo-flix" + } + }, + "overlays": { + "close": "סגור" + }, + "player": { + "back": { + "default": "חזרה לדף הבית", + "short": "חזור" + }, + "casting": { + "enabled": "משדר למכשיר..." + }, + "menus": { + "downloads": { + "disclaimer": "ההורדות נלקחות ישירות מהספק. ל-sudo-flix אין שליטה על האופן שבו מסופקות ההורדות.", + "downloadPlaylist": "הורד פלייליסט", + "downloadSubtitle": "הורד את הכתוביות הנוכחיות", + "downloadVideo": "הורד וידאו", + "hlsDisclaimer": "ההורדות נלקחות ישירות מהספק. ל-sudo-flix אין שליטה על האופן שבו מסופקות ההורדות.

    שים לב שאתה מוריד רשימת השמעה של HLS, לא מומלץ להוריד אם אינך מכיר פורמטים מתקדמים של סטרימינג . נסה מקורות שונים עבור פורמטים שונים.", + "onAndroid": { + "1": "כדי להוריד באנדרואיד, לחץ על כפתור ההורדה ולאחר מכן, בדף החדש, הקש והחזק על הסרטון, ולאחר מכן בחר שמור.", + "shortTitle": "הורדה / אנדרויד", + "title": "הורדה באנדרויד" + }, + "onIos": { + "1": "כדי להוריד ב-iOS, לחץ על כפתור ההורדה ולאחר מכן, בדף החדש, לחץ על ולאחר מכן על שמור לקבצים .", + "shortTitle": "הורדה / iOS", + "title": "מוריד ב-iOS" + }, + "onPc": { + "1": "במחשב, לחץ על כפתור ההורדה ולאחר מכן, בדף החדש, לחץ לחיצה ימנית על הסרטון ובחר שמור סרטון בשם", + "shortTitle": "הורדה / PC", + "title": "הורדה במחשב" + }, + "title": "הורד" + }, + "episodes": { + "button": "פרקים", + "emptyState": "אין פרקים בעונה זו, אנא בדוק שוב מאוחר יותר!", + "episodeBadge": "פ{{episode}}", + "loadingError": "ארע שגיאה בטעינת העונה", + "loadingList": "טוען...", + "loadingTitle": "טוען...", + "unairedEpisodes": "פרק אחד או יותר בעונה זו הושבת מכיוון שהם עדיין לא שודרו." + }, + "playback": { + "speedLabel": "מהירות הניגון", + "title": "הגדרות ניגון" + }, + "quality": { + "automaticLabel": "איכות אוטומטית", + "hint": "אתה יכול לנסות <0>להחליף מקור כדי לקבל אפשרויות איכות שונות.", + "iosNoQuality": "בשל מגבלות שהוגדרו על ידי אפל, בחירת איכות אינה זמינה ב-iOS עבור מקור זה. אתה יכול לנסות <0>לעבור למקור אחר כדי לקבל אפשרויות איכות שונות.", + "title": "איכות" + }, + "settings": { + "downloadItem": "הורד", + "enableSubtitles": "אפשר כתוביות", + "experienceSection": "חווית צפייה", + "playbackItem": "הגדרות ניגון", + "qualityItem": "איכות", + "sourceItem": "מקורות וידאו", + "subtitleItem": "הגדרות כתוביות", + "videoSection": "הגדרות וידאו" + }, + "sources": { + "failed": { + "text": "אירעה שגיאה בעת ניסיון למצוא סרטונים, אנא נסה מקור אחר.", + "title": "לא הצליח לחלץ" + }, + "noEmbeds": { + "text": "לא הצלחנו למצוא שום הטעמות, אנא נסה מקור אחר.", + "title": "לא נמצאו הטמעות" + }, + "noStream": { + "text": "למקור זה אין זרמים עבור הסרט או התוכנית הזו.", + "title": "אין זרם" + }, + "title": "מקורות", + "unknownOption": "לא ידוע" + }, + "subtitles": { + "customChoice": "בחר כתובית מקובץ", + "customizeLabel": "התאם", + "offChoice": "כבוי", + "settings": { + "backlink": "כתוביות מותאמות אישית", + "delay": "עיכוב בכיתוב", + "fixCapitals": "תקן שימוש באותיות גדולות" + }, + "title": "כתוביות", + "unknownLanguage": "לא ידוע" + } + }, + "metadata": { + "api": { + "text": "לא ניתן היה לטעון מטא נתונים של ה-API, אנא בדוק את חיבור האינטרנט שלך.", + "title": "טעינת מטא נתונים של ממשק API נכשלה" + }, + "dmca": { + "badge": "הוסר", + "text": "מדיה זו אינה זמינה יותר עקב הודעת הסרה או תביעה בגין זכויות יוצרים.", + "title": "מדיה הוסרה" + }, + "extensionPermission": { + "badge": "הרשאה חסר", + "button": "השתמש בתוסף", + "text": "יש לך את תוסף הדפדפן, אך אנו זקוקים לאישורך כדי להתחיל להשתמש בתוסף.", + "title": "הגדר את התוסף" + }, + "failed": { + "badge": "נכשל", + "homeButton": "חזור לדף הבית", + "text": "לא היה ניתן לטעון את הmetadata של המדיה מ-TMDB. אנא בדוק אם TMDB מושבת או חסום בחיבור האינטרנט שלך.", + "title": "טעינת הmetdata נכשלה" + }, + "notFound": { + "badge": "לא נמצא", + "homeButton": "חזרה לדף הבית", + "text": "לא הצלחנו למצוא את המדיה שביקשת. או שהוא הוסר או שהתעסקת בכתובת האתר.", + "title": "לא הצלחנו למצוא את המדיה הזו." + } + }, + "nextEpisode": { + "cancel": "בטל", + "next": "פרק הבא" + }, + "playbackError": { + "badge": "שגיאת ניגון", + "errors": { + "errorAborted": "השגת המדיה בוטלה על ידי בקשת המשתמש.", + "errorDecode": "למרות שנקבע קודם כל שהמדיה יכולה להשתמש בה, אירעה שגיאה בעת ניסיון לפענח משאבי המדיה, וכתוצאה מכך קרה שגיאה.", + "errorGenericMedia": "‍אירעה שגיאת מדיה לא ידועה.", + "errorNetwork": "אירעה סוג של שגיאת רשת שמנעה גישה למדיה, למרות שהיא הייתה זמינה מראש.", + "errorNotSupported": "המדיה או ספק המדיה אינם נתמכים." + }, + "homeButton": "חזור לדף הבית", + "text": "אירעה שגיאה בהפעלת המדיה. אנא נסה שוב.", + "title": "הפעלת הסרטון נכשלה!" + }, + "scraping": { + "items": { + "failure": "אירעה שגיאה", + "notFound": "אין את הסרטון", + "pending": "מחפש סרטונים..." + }, + "notFound": { + "badge": "לא נמצא", + "detailsButton": "הצג פרטים", + "homeButton": "חזור לדף הבית", + "text": "חיפשנו בספקים שלנו ולא מצאנו את המדיה שאתה מחפש! אנו לא מארחים את המדיה ואין לנו שליטה על מה שזמין. אנא לחץ על 'הצג פרטים' למידע נוסף.", + "title": "לא יכולנו למצוא את זה" + } + }, + "time": { + "regular": "{{timeWatched}} / {{duration}}", + "remaining": "{{timeLeft}} נשאר • סיים ב {{timeFinished, datetime}}", + "shortRegular": "{{timeWatched}}", + "shortRemaining": "-{{timeLeft}}" + }, + "turnstile": { + "description": "אנא ודא שאתה אנושי על ידי מילוי ה-Captcha בצד ימין. זה כדי לשמור על sudo-flix!", + "error": "נכשל אימות האנושיות שלך. בבקשה נסה שוב.", + "title": "אנחנו צריכים לאמת שאתה אנושי.", + "verifyingHumanity": "מאמת את האנושיות שלך..." + } + }, + "screens": { + "dmca": { + "text": "ברוכה הבאה לדף יצירת קשר DMCA של sudo-flix! אנו מכבדים את זכויות הקניין הרוחני ורוצים לטפל בכל חשש לזכויות יוצרים במהירות. אם אתה סבור שהעבודה שלך המוגנת בזכויות יוצרים נוצלה בצורה לא נכונה בפלטפורמה שלנו, אנא שלח הודעת DMCA מפורטת למייל למטה. אנא כלול תיאור של החומר המוגן בזכויות יוצרים, פרטי ההתקשרות שלך והצהרת תום לב. אנו מחויבים לפתור את העניינים הללו באופן מיידי ומעריכים את שיתוף הפעולה שלך בשמירה על sudo-flix מקום שמכבד יצירתיות וזכויות יוצרים.", + "title": "זכויות יוצרים" + }, + "loadingApp": "טוען את האפליקציה", + "loadingUser": "טוען את הפרופיל שלך", + "loadingUserError": { + "logout": "להתנתק", + "reset": "אפס שרת מותאם אישית", + "text": "טעינת הפרופיל שלך נכשלה", + "textWithReset": "לא הצלחנו לטעון את הפרופיל שלך מהשרת המותאם אישית שלך, תרצה לאפס בחזרה לשרת ברירת המחדל?" + }, + "migration": { + "failed": "העברת הנתונים שלך נכשלה.", + "inProgress": "אנא המתן, אנו מעבירים את הנתונים שלך. זה לא אמור לקחת הרבה זמן." + } + }, + "settings": { + "account": { + "accountDetails": { + "deviceNameLabel": "שם מכשיר", + "deviceNamePlaceholder": "מכשיר אישי", + "editProfile": "ערוך", + "logoutButton": "התנתק" + }, + "actions": { + "delete": { + "button": "מחק משתמש", + "confirmButton": "מחק משתמש", + "confirmDescription": "אתה בטוח שתרצה למחוק את המשתמש שלך? כל הנתונים שלך יימחקו!", + "confirmTitle": "אתה בטוח?", + "text": "פעולה זו היא בלתי הפיכה. כל הנתונים יימחקו ולא ניתן יהיה לשחזר דבר.", + "title": "מחק משתמש" + }, + "title": "פעולות" + }, + "devices": { + "deviceNameLabel": "שם מכשיר", + "failed": "טעינת ההפעלות נכשלה", + "removeDevice": "הסר", + "title": "מכשירים" + }, + "profile": { + "finish": "סייםעריכה", + "firstColor": "‫‫צבע פרופיל ראשון", + "secondColor": "צבע פרופיל שני", + "title": "ערוך תמונת פרופיל", + "userIcon": "סמל משתמש" + }, + "register": { + "cta": "התחל", + "text": "שתף את התקדמות הצפייה שלך בין מכשירים ושמור אותם מסונכרנים.", + "title": "סנכרון לענן" + }, + "title": "משתמש" + }, + "appearance": { + "activeTheme": "פעיל", + "themes": { + "blue": "כחול", + "default": "ברירת מחדל", + "gray": "אפור", + "red": "אדום", + "teal": "ירוק כחלחל" + }, + "title": "מראה" + }, + "connections": { + "server": { + "description": "אם תרצה להתחבר ל-backend מותאם אישית כדי לאחסן את הנתונים שלך, הפעל זאת וספק את כתובת האתר. <0>הוראות.", + "label": "שרת אישי", + "urlLabel": "כתובת אתר מותאמת אישית של שרת" + }, + "setup": { + "doSetup": "עשה הגדרה", + "errorStatus": { + "description": "נראה כי פריט אחד או יותר בהגדרה זו זקוקים לתשומת לבך.", + "title": "משהו צריך את תשומת ליבך" + }, + "itemError": "משהו לא בסדר בהגדרה הזו. עבור שוב על ההגדרה כדי לתקן את זה.", + "items": { + "default": "הגדרת ברירת מחדל", + "extension": "תוסף", + "proxy": "פרוקסי מותאם אישית" + }, + "redoSetup": "בצע מחדש את ההגדרה", + "successStatus": { + "description": "כל הדברים נמצאים במקום כדי שתוכל להתחיל לצפות במדיה האהובה עליך.", + "title": "הכל מוכן!" + }, + "unsetStatus": { + "description": "אנא לחץ על הלחצן מימין כדי להתחיל בתהליך ההגדרה.", + "title": "לא עברת את ההגדרה" + } + }, + "title": "התחברויות", + "workers": { + "addButton": "הוסף עובד חדש", + "description": "כדי שהאפליקציה תפעל, כל התעבורה מנותבת דרך פרוקסי. הפעל זאת אם אתה רוצה להביא עובדים משלך. <0>הוראות.", + "emptyState": "עדיין אין עובדים, הוסף אחד למטה", + "label": "השתמש בעובדי פרוקסי מותאמים אישית", + "urlLabel": "כתובות אתרים של עובדים", + "urlPlaceholder": "https://" + } + }, + "preferences": { + "language": "שפת האפליקציה", + "languageDescription": "השפה החלה על האפליקציה כולה.", + "thumbnail": "צור טאמבניילים", + "thumbnailDescription": "לרוב, לסרטונים אין טאמבניילים. אתה יכול להפעיל את ההגדרה הזו כדי ליצור אותם, אבל הם יכולים להפוך את הסרטון שלך לאיטי יותר.", + "thumbnailLabel": "צור טאמבניילים", + "title": "העדפות" + }, + "reset": "איפוס", + "save": "לשמור", + "sidebar": { + "info": { + "appVersion": "גרסת האפליקציה", + "backendUrl": "כתובת אתר אחורי", + "backendVersion": "גרסת Backend", + "hostname": "שם מארח", + "insecure": "לא בטוח", + "notLoggedIn": "אתה לא מחובר", + "secure": "מאובטח", + "title": "מידע על האפליקציה", + "unknownVersion": "לא ידוע", + "userId": "זהות המשתמש" + } + }, + "subtitles": { + "backgroundLabel": "אטימות רקע", + "colorLabel": "צבע", + "previewQuote": "אין נחום, אני לא באמת קיים. אני למעשה, חישוק.", + "textSizeLabel": "גודל הטקסט", + "title": "כתוביות" + }, + "unsaved": "יש לך שינויים שלא נשמרו" + } +} diff --git a/src/assets/locales/hi.json b/src/assets/locales/hi.json new file mode 100644 index 00000000..636ed7b5 --- /dev/null +++ b/src/assets/locales/hi.json @@ -0,0 +1,428 @@ +{ + "about": { + "description": "मूवी-वेब एक वेब एप्लिकेशन है जो इंटरनेट पर स्ट्रीम्स की खोज करता है। टीम का लक्ष्य सामग्री के उपभोग के लिए अधिकतर न्यूनतम दृष्टिकोण अपनाना है।", + "faqTitle": "सामान्य प्रश्न", + "q1": { + "body": "मूवी-वेब किसी भी कंटेंट को होस्ट नहीं करता है। जब आप देखने के लिए किसी चीज़ पर क्लिक करते हैं, तो इंटरनेट पर चयनित मीडिया की खोज की जाती है (लोडिंग स्क्रीन पर और 'वीडियो स्रोत' टैब में आप देख सकते हैं कि आप किस स्रोत का उपयोग कर रहे हैं)। मीडिया कभी भी मूवी-वेब द्वारा अपलोड नहीं किया जाता है, सब कुछ इस खोज तंत्र के माध्यम से होता है।", + "title": "फिल्म कहां से आती है?" + }, + "q2": { + "body": "किसी शो या मूवी का अनुरोध करना संभव नहीं है, मूवी-वेब किसी भी फिलम का प्रबंधन नहीं करता है। सभी फिल्में इंटरनेट पर स्रोतों के माध्यम से देखी जाती है।", + "title": "मैं किसी शो या मूवी का अनुरोध कहां कर सकता हूं?" + }, + "q3": { + "body": "हमारे खोज परिणाम मूवी डेटाबेस (टीएमडीबी) द्वारा संचालित होते हैं और इस पर ध्यान दिए बिना प्रदर्शित होते हैं कि हमारे स्रोतों में वास्तव में सामग्री है या नहीं।", + "title": "खोज परिणाम शो या मूवी प्रदर्शित करते हैं, मैं फिलम क्यों नहीं चला पा रहा ?" + }, + "title": "मूवी-वेब के बारे में" + }, + "actions": { + "copied": "कॉपी किया गया हुआ है", + "copy": "कॉपी" + }, + "auth": { + "createAccount": "अब तक कोई खाता नहीं है? <0>खाता बनाएं।", + "deviceNameLabel": "डिवाइस का नाम", + "deviceNamePlaceholder": "निजी फ़ोन", + "generate": { + "description": "आपका पासफ़्रेज़ आपके नाम और पासवर्ड के रूप में कार्य करता है। इसे सुरक्षित रखना सुनिश्चित करें क्योंकि आपको अपने खाते में लॉगिन करने के लिए इसे दर्ज करना होगा", + "next": "मैंने अपना पासफ़्रेज़ सहेज कर लिया है", + "passphraseFrameLabel": "पासफ़्रेज़", + "title": "तुम्हारा पासफ़्रेज़" + }, + "hasAccount": "पहले से एक खाता मौजूद है? <0>यहां लॉगिन करें।", + "login": { + "description": "कृपया अपने खाते में लॉगिन करने के लिए अपना पासफ़्रेज़ दर्ज करें", + "deviceLengthError": "कृपया डिवाइस का नाम दर्ज करें", + "passphraseLabel": "12-शब्द का पासफ़्रेज़", + "passphrasePlaceholder": "पासफ़्रेज़", + "submit": "लॉग इन", + "title": "अपने अकाउंट में लॉग इन करें", + "validationError": "ग़लत या अपूर्ण पासफ़्रेज़" + }, + "register": { + "information": { + "color1": "प्रोफ़ाइल का पहला रंग", + "color2": "प्रोफ़ाइल का दूसरा रंग", + "header": "अपने डिवाइस के लिए एक नाम दर्ज करें और अपने पसंद का रंग और एक आइकन चुनें", + "icon": "आइकन", + "next": "अगला", + "title": "खाता संबंधी जानकारी" + } + }, + "trust": { + "failed": { + "text": "क्या आपने इसे सही ढंग से कॉन्फ़िगर किया?", + "title": "सर्वर तक पहुंचने में विफल" + }, + "host": "आप <0>{{hostname}} से कनेक्ट हो रहे हैं - खाता बनाने से पहले कृपया पुष्टि करें कि आप इस पर भरोसा करते हैं", + "no": "पीछे जाये", + "title": "क्या आपको इस सर्वर पर भरोसा है?", + "yes": "मुझे इस सर्वर पर भरोसा है" + }, + "verify": { + "description": "यह पुष्टि करने के लिए कि आपने इसे सहेज लिया है और अपना खाता बनाने के लिए कृपया अपना पहले का पासफ़्रेज़ दर्ज करें", + "invalidData": "डेटा मान्य नहीं है", + "noMatch": "पासफ़्रेज़ मेल नहीं खाता", + "passphraseLabel": "आपका 12-शब्दों वाला पासफ़्रेज़", + "recaptchaFailed": "कैप्चा सत्यापन विफल रहा", + "register": "खाता बनाएं", + "title": "अपने पासफ़्रेज़ की पुष्टि करें" + } + }, + "errors": { + "badge": "कुछ टूट गया है शायद", + "details": "गलतियों की जानकारी", + "reloadPage": "पृष्ठ को पुन: लोड करें", + "showError": "गलतियों का विवरण दिखाएँ", + "title": "हमें एक गलति का सामना करना पड़ा!" + }, + "footer": { + "legal": { + "disclaimer": "अस्वीकरण", + "disclaimerText": "मूवी-वेब किसी फ़ाइल को होस्ट नहीं करता है, यह केवल तृतीय पक्ष सेवाओं से लिंक करता है। कानूनी मुद्दों को फ़ाइल होस्ट और प्रदाताओं के साथ उठाया जाना चाहिए। मूवी-वेब वीडियो प्रदाताओं द्वारा दिखाई गई किसी भी मीडिया फ़ाइल के लिए ज़िम्मेदार नहीं है।" + }, + "links": { + "discord": "डीसकॉर्ड", + "dmca": "DMCA", + "github": "गिटहब" + }, + "tagline": "अपने पसंदीदा शो और फिल्में देखें, इस ओपन सोर्स स्ट्रीमिंग ऐप के साथ।" + }, + "global": { + "name": "मूवी-वेब", + "pages": { + "about": "साइट के बारे में", + "dmca": "DMCA", + "login": "लॉग इन", + "pagetitle": "{{title}} - मूवी-वेब", + "register": "नया खाता बनायें", + "settings": "सेटिंग्स" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "बुकमार्क" + }, + "continueWatching": { + "sectionTitle": "देखना जारी रखें" + }, + "mediaList": { + "stopEditing": "एडिट करना बंद करे" + }, + "search": { + "allResults": "बस यही है!", + "failed": "मीडिया ढूंढने में विफल, पुनः प्रयास करें!", + "loading": "लोड हो रहा है..।", + "noResults": "हमें कुछ नहीं मिला!", + "placeholder": "क्या देखना चाहते हो?", + "sectionTitle": "खोज के परिणाम" + }, + "titles": { + "day": { + "default": "आप आज शाम क्या देखना चाहेंगे?", + "extra": [ + "साहसी महसूस कर रहे हैं? जुरासिक पार्क शायद सबसे उत्तम विकल्प हो सकता है।" + ] + }, + "morning": { + "default": "आप आज सुबह को क्या देखना चाहेंगे?", + "extra": ["मैंने सुना है सूर्योदय से पहले ठीक है"] + }, + "night": { + "default": "आप आज रात को क्या देखना चाहेंगे?", + "extra": ["थके हुए हो? मैंने सुना एक्सोरसिस्ट अच्छी मूवी है।"] + } + } + }, + "media": { + "episodeDisplay": "S{{season}} E{{episode}}", + "types": { + "movie": "मूवी", + "show": "शृंखला" + } + }, + "navigation": { + "banner": { + "offline": "अपना इंटरनेट संपर्क जांचे" + }, + "menu": { + "about": "हमारे बारे में", + "donation": "दान करें", + "logout": "लॉग आउट", + "register": "क्लाउड से सिंक करें", + "settings": "सेटिंग्स", + "support": "सहायता" + } + }, + "notFound": { + "badge": "नहीं मिला", + "goHome": "घर वापिस जा रहा हूँ", + "message": "हमने हर जगह देखा: डिब्बे के नीचे, कोठरी में, प्रॉक्सी के पीछे लेकिन अंततः वह पेज नहीं मिला जिसे आप ढूंढ रहे थे।", + "title": "वह पृष्ठ नहीं मिल सका" + }, + "overlays": { + "close": "बंद करना" + }, + "player": { + "back": { + "default": "घर वापिस", + "short": "वापिस" + }, + "casting": { + "enabled": "डिवाइस पर कास्ट किया जा रहा है..।" + }, + "menus": { + "downloads": { + "disclaimer": "डाउनलोड सीधे प्रदाता से लिए जाते हैं। मूवी-वेब का इस पर नियंत्रण नहीं है कि डाउनलोड कैसे प्रदान किए जाते हैं।", + "downloadPlaylist": "प्लेलिस्ट डाउनलोड करें", + "downloadSubtitle": "वर्तमान उपशीर्षक डाउनलोड करें", + "downloadVideo": "वीडियो डाउनलोड करें", + "hlsDisclaimer": "डाउनलोड सीधे प्रदाता से लिए जाते हैं। मूवी-वेब का इस पर नियंत्रण नहीं है कि डाउनलोड कैसे प्रदान किए जाते हैं। कृपया ध्यान दें कि आप एक एचएलएस प्लेलिस्ट डाउनलोड कर रहे हैं, यह उन्नत मल्टीमीडिया स्ट्रीमिंग से परिचित उपयोगकर्ताओं के लिए है।", + "onAndroid": { + "1": "एंड्रॉइड पर डाउनलोड करने के लिए, डाउनलोड बटन पर क्लिक करें, फिर नए पेज पर, वीडियो पर टैप करके रखें, फिर save चुनें।", + "shortTitle": "डाउनलोड / एंड्रॉइड", + "title": "एंड्रॉइड पर डाउनलोड हो रहा है" + }, + "onIos": { + "1": "iOS पर डाउनलोड करने के लिए, डाउनलोड बटन पर क्लिक करें, फिर नए पेज पर पर क्लिक करें, फिर फ़ाइलों में सहेजें पर क्लिक करें।", + "shortTitle": "डाउनलोड / आईओएस", + "title": "आईओएस पर डाउनलोड हो रहा है" + }, + "onPc": { + "1": "पीसी पर, डाउनलोड बटन पर क्लिक करें, फिर नए पेज पर, वीडियो पर राइट क्लिक करें और वीडियो को इस रूप में सेव करें चुनें", + "shortTitle": "डाउनलोड / पीसी", + "title": "पीसी पर डाउनलोड हो रहा है" + }, + "title": "डाउनलोड" + }, + "episodes": { + "button": "एपिसोड", + "emptyState": "इस सीज़न में कोई एपिसोड नहीं है, बाद में दोबारा जाँचें!", + "episodeBadge": "E{{episode}}", + "loadingError": "सीज़न लोड करने में त्रुटि", + "loadingList": "लोड हो रहा है..।", + "loadingTitle": "लोड हो रहा है..।", + "unairedEpisodes": "इस सीज़न में एक या अधिक एपिसोड अक्षम कर दिए गए हैं क्योंकि वे अभी तक प्रसारित नहीं हुए हैं।" + }, + "playback": { + "speedLabel": "प्लेबैक गति", + "title": "प्लेबैक सेटिंग्स" + }, + "quality": { + "automaticLabel": "स्वचालित गुणवत्ता", + "hint": "आप विभिन्न गुणवत्ता विकल्प प्राप्त करने के लिए <0>स्रोत स्विचिंग का प्रयास कर सकते हैं।", + "iosNoQuality": "Apple द्वारा परिभाषित सीमाओं के कारण, इस स्रोत के लिए iOS पर गुणवत्ता चयन उपलब्ध नहीं है। आप विभिन्न गुणवत्ता विकल्प प्राप्त करने के लिए <0>किसी अन्य स्रोत पर स्विच करने का प्रयास कर सकते हैं।", + "title": "गुणवत्ता" + }, + "settings": { + "downloadItem": "डाउनलोड", + "enableSubtitles": "उपशीर्षक सक्षम करें", + "experienceSection": "देखने का अनुभव", + "playbackItem": "प्लेबैक सेटिंग्स", + "qualityItem": "चित्र की गुणवत्ता", + "sourceItem": "वीडियो स्रोत", + "subtitleItem": "उपशीर्षक सेटिंग्स", + "videoSection": "वीडियो सेटिंग्स" + }, + "sources": { + "failed": { + "text": "किसी भी वीडियो को खोजने का प्रयास करते समय एक त्रुटि हुई, कृपया किसी भिन्न स्रोत का प्रयास करें।", + "title": "स्क्रैप करने में विफल" + }, + "noEmbeds": { + "text": "हम कोई एम्बेड नहीं ढूंढ पाए, कृपया कोई भिन्न स्रोत आज़माएँ।", + "title": "कोई एंबेड नहीं मिला" + }, + "noStream": { + "text": "इस स्रोत के पास इस फिल्म या शो के लिए कोई स्ट्रीम नहीं है।", + "title": "कोई धारा नहीं" + }, + "title": "स्रोत", + "unknownOption": "अज्ञात" + }, + "subtitles": { + "customChoice": "फ़ाइल से उपशीर्षक चुनें", + "customizeLabel": "अनुकूलित करें", + "offChoice": "बंद", + "settings": { + "backlink": "कस्टम उपशीर्षक", + "delay": "उपशीर्षक विलंब", + "fixCapitals": "पूंजीकरण ठीक करें" + }, + "title": "उपशीर्षक", + "unknownLanguage": "अज्ञात" + } + }, + "metadata": { + "api": { + "text": "एपीआई मेटाडेटा लोड नहीं हो सका, कृपया अपना इंटरनेट कनेक्शन जांचें।", + "title": "एपीआई मेटाडेटा लोड करने में विफल" + }, + "failed": { + "badge": "असफल", + "homeButton": "घर जाओ", + "text": "टीएमडीबी से मीडिया का मेटाडेटा लोड नहीं किया जा सका। कृपया जांचें कि क्या आपके इंटरनेट कनेक्शन पर टीएमडीबी बंद है या अवरुद्ध है।", + "title": "मेटाडेटा लोड करने में विफल" + }, + "notFound": { + "badge": "नहीं मिला", + "homeButton": "घर वापिस", + "text": "हमें आपके द्वारा अनुरोधित मीडिया नहीं मिल सका। या तो इसे हटा दिया गया है या आपने यूआरएल के साथ छेड़छाड़ की है।", + "title": "वह मीडिया नहीं मिल सका।" + } + }, + "nextEpisode": { + "cancel": "रद्द करना", + "next": "अगले प्रकरण" + }, + "playbackError": { + "badge": "प्लेबैक त्रुटि", + "errors": { + "errorAborted": "उपयोगकर्ता के अनुरोध पर मीडिया को लाना रोक दिया गया था।", + "errorDecode": "पहले प्रयोग योग्य होने के लिए निर्धारित होने के बावजूद, मीडिया संसाधन को डीकोड करने का प्रयास करते समय एक त्रुटि उत्पन्न हुई, जिसके परिणामस्वरूप त्रुटि हुई।", + "errorGenericMedia": "अज्ञात मीडिया त्रुटि उत्पन्न हुई।", + "errorNetwork": "किसी प्रकार की नेटवर्क त्रुटि उत्पन्न हुई जिसके कारण मीडिया पहले से उपलब्ध होने के बावजूद सफलतापूर्वक प्राप्त नहीं हो सका।", + "errorNotSupported": "मीडिया या मीडिया प्रदाता ऑब्जेक्ट समर्थित नहीं है।" + }, + "homeButton": "घर जाओ", + "text": "मीडिया चलाने का प्रयास करते समय एक त्रुटि हुई. कृपया पुन: प्रयास करें।", + "title": "वीडियो चलाने में विफल!" + }, + "scraping": { + "items": { + "failure": "त्रुटि हुई", + "notFound": "वीडियो नहीं है", + "pending": "वीडियो की जांच की जा रही है..।" + }, + "notFound": { + "badge": "नहीं मिला", + "detailsButton": "प्रदर्शन का विवरण", + "homeButton": "घर जाओ", + "text": "हमने अपने प्रदाताओं के माध्यम से खोज की है और आपको वह मीडिया नहीं मिल सका जिसकी आप तलाश कर रहे हैं! हम मीडिया की मेजबानी नहीं करते हैं और जो उपलब्ध है उस पर हमारा कोई नियंत्रण नहीं है। अधिक जानकारी के लिए कृपया नीचे 'विवरण दिखाएं' पर क्लिक करें।", + "title": "हमें वह नहीं मिला" + } + }, + "time": { + "regular": "{{timeWatched}} / {{duration}}", + "remaining": "{{timeLeft}} समय बचा है • ख़तम होगा {{timeFinished, datetime}}", + "shortRegular": "{{timeWatched}}", + "shortRemaining": "-{{timeLeft}}" + }, + "turnstile": { + "description": "कृपया दाईं ओर दिए गए कैप्चा को पूरा करके सत्यापित करें कि आप इंसान हैं। यह मूवी-वेब को सुरक्षित रखने के लिए है!", + "error": "आपकी मानवता को सत्यापित करने में विफल. कृपया पुन: प्रयास करें।", + "title": "हमें यह सत्यापित करने की आवश्यकता है कि आप इंसान हैं।", + "verifyingHumanity": "आपकी मानवता का सत्यापन..।" + } + }, + "screens": { + "dmca": { + "text": "मूवी-वेब के DMCA संपर्क पृष्ठ में आपका स्वागत है! हम बौद्धिक संपदा अधिकारों का सम्मान करते हैं और किसी भी कॉपीराइट संबंधी चिंताओं का शीघ्र समाधान करना चाहते हैं। यदि आपको लगता है कि आपके कॉपीराइट किए गए कार्य का हमारे प्लेटफ़ॉर्म पर अनुचित तरीके से उपयोग किया गया है, तो कृपया नीचे दिए गए ईमेल पर एक विस्तृत DMCA नोटिस भेजें। कृपया कॉपीराइट सामग्री का विवरण, अपना संपर्क विवरण और सद्भावना विश्वास का एक बयान शामिल करें। हम इन मामलों को तुरंत हल करने के लिए प्रतिबद्ध हैं और मूवी-वेब को रचनात्मकता और कॉपीराइट का सम्मान करने वाला स्थान बनाए रखने में आपके सहयोग की सराहना करते हैं।", + "title": "DMCA" + }, + "loadingApp": "एप्लिकेशन लोड हो रहा है", + "loadingUser": "आपकी प्रोफ़ाइल लोड हो रही है", + "loadingUserError": { + "logout": "लॉग आउट", + "reset": "कस्टम सर्वर रीसेट करें", + "text": "आपकी प्रोफ़ाइल लोड करने में विफल", + "textWithReset": "आपके कस्टम सर्वर से आपकी प्रोफ़ाइल लोड करने में विफल, डिफ़ॉल्ट सर्वर पर वापस रीसेट करना चाहते हैं?" + }, + "migration": { + "failed": "आपका डेटा स्थानांतरित करने में विफल।", + "inProgress": "कृपया रुकें, हम आपका डेटा स्थानांतरित कर रहे हैं। इसमें ज्यादा समय नहीं लगना चाहिए।" + } + }, + "settings": { + "account": { + "accountDetails": { + "deviceNameLabel": "डिवाइस का नाम", + "deviceNamePlaceholder": "निजी फ़ोन", + "editProfile": "संपादन करना", + "logoutButton": "लॉग आउट" + }, + "actions": { + "delete": { + "button": "खाता हटा दो", + "confirmButton": "खाता हटा दो", + "confirmDescription": "क्या आप इस खाते को हटाने के लिए सुनिश्चित हैं? आपका सारा डेटा खो जाएगा!", + "confirmTitle": "क्या आपको यकीन है?", + "text": "यह क्रिया अपरिवर्तनीय है. सारा डेटा हटा दिया जाएगा और कुछ भी पुनर्प्राप्त नहीं किया जा सकेगा।", + "title": "खाता हटा दो" + }, + "title": "कार्रवाई" + }, + "devices": { + "deviceNameLabel": "डिवाइस का नाम", + "failed": "सत्र लोड करने में विफल", + "removeDevice": "निकालना", + "title": "उपकरण" + }, + "profile": { + "finish": "संपादन समाप्त करें", + "firstColor": "प्रोफ़ाइल का रंग एक", + "secondColor": "प्रोफ़ाइल रंग दो", + "title": "प्रोफाइल तस्वीर को संपादित करें", + "userIcon": "आइकन" + }, + "register": { + "cta": "शुरू हो जाओ", + "text": "अपनी प्रगति को उपकरणों के बीच साझा करें और उन्हें समन्वयित रखें।", + "title": "क्लाउड से सिंक करें" + }, + "title": "खाता" + }, + "appearance": { + "activeTheme": "सक्रिय", + "themes": { + "blue": "नीला", + "default": "गलती करना", + "gray": "स्लेटी", + "red": "लाल", + "teal": "टील" + }, + "title": "उपस्थिति" + }, + "connections": { + "server": { + "description": "यदि आप अपना डेटा संग्रहीत करने के लिए कस्टम बैकएंड से कनेक्ट करना चाहते हैं, तो इसे सक्षम करें और URL प्रदान करें।", + "label": "कस्टम सर्वर", + "urlLabel": "कस्टम सर्वर यूआरएल" + }, + "title": "सम्बन्ध", + "workers": { + "addButton": "नया कार्यकर्ता जोड़ें", + "description": "एप्लिकेशन को कार्यशील बनाने के लिए, सभी ट्रैफ़िक को प्रॉक्सी के माध्यम से रूट किया जाता है। यदि आप अपने स्वयं के श्रमिकों को लाना चाहते हैं तो इसे सक्षम करें।", + "emptyState": "अभी तक कोई कर्मचारी नहीं, नीचे एक जोड़ें", + "label": "कस्टम प्रॉक्सी कार्यकर्ताओं का उपयोग करें", + "urlLabel": "कार्यकर्ता यूआरएल", + "urlPlaceholder": "https://" + } + }, + "reset": "रीसेट", + "save": "सेव", + "sidebar": { + "info": { + "appVersion": "एप्लिकेशन वेरीज़न", + "backendUrl": "बैकएंड यूआरएल", + "backendVersion": "बैकएंड संस्करण", + "hostname": "होस्ट का नाम", + "insecure": "असुरक्षित", + "notLoggedIn": "आपने लॉग - इन नहीं किया", + "secure": "सुरक्षित", + "title": "ऐप की जानकारी", + "unknownVersion": "अज्ञात", + "userId": "उपयोगकर्ता पहचान" + } + }, + "subtitles": { + "backgroundLabel": "पृष्ठभूमि अस्पष्टता", + "colorLabel": "रंग", + "previewQuote": "मुझे डरना नहीं चाहिए. डर मन हत्यारा है।", + "textSizeLabel": "टेक्स्ट का साइज़", + "title": "उपशीर्षक" + }, + "unsaved": "आपके पास सहेजे नहीं गए परिवर्तन हैं" + } +} diff --git a/src/assets/locales/id.json b/src/assets/locales/id.json new file mode 100644 index 00000000..db53778e --- /dev/null +++ b/src/assets/locales/id.json @@ -0,0 +1,417 @@ +{ + "about": { + "description": "sudo-flix adalah website yang mengumpulkan sumber media streaming dari internet. Didesain khusus dengan pendekatan minimalis agar mempermudah konsumsi konten.", + "faqTitle": "Pertanyaan umum", + "q1": { + "body": "sudo-flix tidak menyimpan berkas media apapun. Ketika anda mengklik sesuatu untuk ditonton, aplikasi akan mencari berkas media di internet (saat media dimuat dan pada tab 'sumber media' anda dapat melihat sumber mana yang digunakan). sudo-flix tidak pernah mengunggah media apapun, semua media didapat melalui mekanisme pencarian di internet.", + "title": "Dari mana konten media di sini berasal?" + }, + "q2": { + "body": "Kami tidak menerima permintaan penambahan serial televisi atau film, sudo-flix tidak mengelola konten apapun. Semua konten ditonton melalui sumber-sumber dari internet.", + "title": "Di mana saya dapat meminta serial televisi atau film untuk ditambahkan?" + }, + "q3": { + "body": "Hasil pencarian aplikasi ini menggunakan API milik The Movie Database (TMDB) dan menampilkan semua hasil pencarian terlepas dari apakah sumber media tersebut dapat ditemukan di penyedia pihak ketiga atau tidak.", + "title": "Hasil pencarian menampilkan serial televisi atau film yang saya cari, tapi mengapa saya tidak bisa memutarnya?" + }, + "title": "Tentang sudo-flix" + }, + "actions": { + "copied": "Disalin", + "copy": "Salin" + }, + "auth": { + "createAccount": "Belum memiliki akun? <0>Buat akun.", + "deviceNameLabel": "Nama perangkat", + "deviceNamePlaceholder": "Perangkat personal", + "generate": { + "description": "Kombinasi kata ini berfungsi sebagai nama pengguna sekaligus kata sandi anda. Pastikan untuk menyimpannya dengan aman karena anda memerlukannya untuk masuk ke akun anda", + "next": "Saya sudah menyimpan kombinasi kata di atas", + "passphraseFrameLabel": "Kombinasi kata", + "title": "Kombinasi kata anda" + }, + "hasAccount": "Sudah memiliki akun? <0>Masuk disini.", + "login": { + "description": "Mohon masukkan kombinasi kata anda untuk masuk ke akun anda", + "deviceLengthError": "Mohon masukkan nama perangkat", + "passphraseLabel": "12 kombinasi kata unik", + "passphrasePlaceholder": "Kombinasi kata", + "submit": "Masuk", + "title": "Masuk ke akun anda", + "validationError": "Kombinasi kata unik salah" + }, + "register": { + "information": { + "color1": "Gradasi warna profil pertama", + "color2": "Gradasi warna profil kedua", + "header": "Masukkan nama perangkat anda lalu pilih warna latar belakang dan ikon pengguna yang ingin anda gunakan", + "icon": "Ikon pengguna", + "next": "Berikutnya", + "title": "Informasi akun" + } + }, + "trust": { + "failed": { + "text": "Apakah anda mengkonfigurasi server dengan benar?", + "title": "Gagal terhubung dengan server" + }, + "host": "Anda ingin terhubung ke <0>{{hostname}} - mohon konfirmasi anda mempercayai server ini sebelum anda membuat akun", + "no": "Kembali", + "title": "Apakah anda mempercayai server ini?", + "yes": "Saya percaya" + }, + "verify": { + "description": "Mohon masukkan kombinasi kata pribadi anda sebelumnya untuk mengonfirmasi bahwa anda telah menyimpannya untuk melanjutkan proses pembuatan akun", + "invalidData": "Data tidak valid", + "noMatch": "Kombinasi kata tidak cocok", + "passphraseLabel": "12 kombinasi kata pribadi anda", + "recaptchaFailed": "Validasi reCaptcha gagal", + "register": "Buat akun", + "title": "Konfirmasi kombinasi kata pribadi anda" + } + }, + "errors": { + "badge": "Terjadi masalah", + "details": "Detail eror", + "reloadPage": "Muat ulang halaman", + "showError": "Lihat detail eror", + "title": "Kami mengalami galat!" + }, + "footer": { + "legal": { + "disclaimer": "Sanggahan", + "disclaimerText": "sudo-flix tidak menyimpan berkas media apapun, aplikasi ini hanya menampilkan tautan dari pihak ketiga. Sengketa hukum harus diajukan langsung kepada penyedia pihak ketiga. sudo-flix tidak bertanggung jawab atas berkas media yang ditampilkan oleh penyedia pihak ketiga." + }, + "links": { + "discord": "Discord", + "dmca": "DMCA", + "github": "GitHub" + }, + "tagline": "Tonton serial televisi dan film favorit anda dengan aplikasi streaming open source ini." + }, + "global": { + "name": "sudo-flix", + "pages": { + "about": "Tentang", + "dmca": "DMCA", + "login": "Masuk", + "pagetitle": "{{title}} - sudo-flix", + "register": "Daftar", + "settings": "Pengaturan" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "Penanda" + }, + "continueWatching": { + "sectionTitle": "Lanjut menonton" + }, + "mediaList": { + "stopEditing": "Berhenti mengubah" + }, + "search": { + "allResults": "Hanya itu yang kami punya!", + "failed": "Gagal menemukan media, coba lagi!", + "loading": "Memuat...", + "noResults": "Kami tidak dapat menemukan apapun!", + "placeholder": "Apa yang ingin anda tonton?", + "sectionTitle": "Hasil pencarian" + }, + "titles": { + "day": { + "default": "Apa yang ingin anda tonton sore ini?", + "extra": [ + "Lagi pengen nonton genre Adventure? Jurassic Park mungkin cocok buat anda." + ] + }, + "morning": { + "default": "Apa yang ingin anda tonton pagi ini?", + "extra": ["Kayaknya film Before Sunrise bagus deh"] + }, + "night": { + "default": "Apa yang ingin anda tonton malam ini?", + "extra": ["Capek? Katanya The Exocist rekomended."] + } + } + }, + "media": { + "episodeDisplay": "S{{season}} E{{episode}}", + "types": { + "movie": "Film", + "show": "Serial TV" + } + }, + "navigation": { + "banner": { + "offline": "Periksa koneksi internet anda" + }, + "menu": { + "about": "Tentang kami", + "donation": "Donasi", + "logout": "Keluar", + "register": "Sinkronkan ke cloud", + "settings": "Pengaturan", + "support": "Bantuan" + } + }, + "notFound": { + "badge": "Tidak ditemukan", + "goHome": "Kembali", + "message": "Kami sudah mencari dimana-mana: di bawah tempat sampah, di lemari, di belakang server proxy, tapi tetap gagal menemukan halaman yang anda cari.", + "title": "Gagal menemukan halaman" + }, + "overlays": { + "close": "Tutup" + }, + "player": { + "back": { + "default": "Kembali", + "short": "Kembali" + }, + "casting": { + "enabled": "Casting ke perangkat..." + }, + "menus": { + "downloads": { + "disclaimer": "Tautan unduhan diambil langsung dari penyedia pihak ketiga. Aplikasi ini tidak memiliki kendali bagaimana unduhan disediakan.", + "downloadPlaylist": "Unduh playlist", + "downloadSubtitle": "Unduh subtitle", + "downloadVideo": "Unduh media", + "hlsDisclaimer": "Tautan unduhan diambil langsung dari penyedia pihak ketiga. Aplikasi ini tidak memiliki kendali bagaimana unduhan disediakan. Harap diperhatikan, anda akan mengunduh HLS playlist, media ini hanya ditunjukan bagi pengguna tingkat lanjut.", + "onAndroid": { + "1": "Untuk mengunduh di Android, klik tombol unduh, lalu di halaman baru klik dan tahan pada video, lalu pilih save.", + "shortTitle": "Unduh / Android", + "title": "Unduh di Android" + }, + "onIos": { + "1": "Untuk mengunduh di iOS, klik tombol unduh, lalu di halaman baru, klik , lalu Save to Files .", + "shortTitle": "Unduh / iOS", + "title": "Unduh di iOS" + }, + "onPc": { + "1": "Untuk mengunduh di PC, klik tombol unduh, lalu di halaman baru klik kanan video, dan pilih Save video as", + "shortTitle": "Unduh / PC", + "title": "Unduh di PC" + }, + "title": "Unduh" + }, + "episodes": { + "button": "Episode", + "emptyState": "Tidak ada episode di season ini, check lagi nanti!", + "episodeBadge": "E{{episode}}", + "loadingError": "Eror memuat season", + "loadingList": "Memuat...", + "loadingTitle": "Memuat..." + }, + "playback": { + "speedLabel": "Kecepatan pemutar", + "title": "Pengaturan pemutar" + }, + "quality": { + "automaticLabel": "Otomatis", + "hint": "Anda dapat mencoba <0>mengganti sumber media untuk mendapatkan opsi kualitas yang berbeda.", + "iosNoQuality": "Karena keterbatasan dari Apple, opsi kualitas pada sumber ini tidak tersedia untuk iOS. Anda dapat mencoba <0>mengganti sumber media untuk mendapatkan opsi kualitas yang berbeda.", + "title": "Kualitas" + }, + "settings": { + "downloadItem": "Unduh", + "enableSubtitles": "Hidupkan subtitle", + "experienceSection": "Pengaturan tambahan", + "playbackItem": "Pengaturan pemutar", + "qualityItem": "Kualitas", + "sourceItem": "Sumber media", + "subtitleItem": "Pengaturan subtitle", + "videoSection": "Pengaturan media" + }, + "sources": { + "failed": { + "text": "Terjadi galat saat mencoba mencari media, mohon pilih sumber yang lain.", + "title": "Gagal memuat data" + }, + "noEmbeds": { + "text": "Kami tidak dapat menemukan tautan, mohon pilih sumber yang lain.", + "title": "Tautan tidak ditemukan" + }, + "noStream": { + "text": "Sumber ini tidak memiliki media untuk film atau seri yang anda cari.", + "title": "Tidak ada media" + }, + "title": "Sumber", + "unknownOption": "Tidak diketahui" + }, + "subtitles": { + "customChoice": "Pilih subtitle dari file", + "customizeLabel": "Sesuaikan", + "offChoice": "Matikan", + "settings": { + "backlink": "Subtitle khusus", + "delay": "Penundaan subtitle", + "fixCapitals": "Perbaiki kapitalisasi" + }, + "title": "Subtitle", + "unknownLanguage": "Tidak diketahui" + } + }, + "metadata": { + "failed": { + "badge": "Gagal", + "homeButton": "Kembali", + "text": "Tidak dapat memuat metadata dari TMDB. Mohon periksa apakah TMDB sedang nonaktif atau diblokir pada koneksi internet anda.", + "title": "Gagal memuat metadata" + }, + "notFound": { + "badge": "Tidak ditemukan", + "homeButton": "Kembali", + "text": "Kami tidak dapat menemukan media yang anda cari. Media mungkin sudah dihapus atau URL yang anda masukan salah.", + "title": "Tidak dapat menemukan media." + } + }, + "nextEpisode": { + "cancel": "Batal", + "next": "Episode selanjutnya" + }, + "playbackError": { + "badge": "Galat pemutar", + "errors": { + "errorAborted": "Proses pemuatan media dibatalkan oleh permintaan penguna.", + "errorDecode": "Meskipun sebelumnya media diputuskan dapat digunakan, terjadi masalah saat mencoba memutar berkas media, yang mengakibatkan terjadinya eror.", + "errorGenericMedia": "Terjadi masalah yang tidak diketahui pada media.", + "errorNetwork": "Terjadi kesalahan pada jaringan yang menyebabkan media gagal dimuat, meskipun sebelumnya berhasil.", + "errorNotSupported": "Berkas media atau objek penyedia media tidak didukung." + }, + "homeButton": "Kembali", + "text": "Terjadi masalah saat mencoba memutar media. Mohon coba lagi.", + "title": "Gagal memutar media!" + }, + "scraping": { + "items": { + "failure": "Terjadi masalah", + "notFound": "Media tidak ditemukan", + "pending": "Mencari media..." + }, + "notFound": { + "badge": "Tidak ditemukan", + "detailsButton": "Lihat detail", + "homeButton": "Kembali", + "text": "Kami sudah mencari ke semua penyedia yang kami miliki dan gagal menemukan media yang anda cari! Kami tidak menyimpan berkas media dan tidak memiliki kontrol atas apa yang tersedia. Periksa tombol 'Lihat detail' dibawah ini untuk informasi lebih lanjut.", + "title": "Kami tidak dapat menemukannya" + } + }, + "time": { + "regular": "{{timeWatched}} / {{duration}}", + "remaining": "{{timeLeft}} tersisa • Selesai pada pukul {{timeFinished, datetime}}", + "shortRegular": "{{timeWatched}}", + "shortRemaining": "-{{timeLeft}}" + } + }, + "screens": { + "dmca": { + "text": "Selamat datang di halaman kontak DMCA sudo-flix! Kami menghormati hak kekayaan intelektual dan ingin menangani masalah hak cipta dengan cepat. Jika anda yakin bahwa karya berhak cipta anda telah digunakan secara tidak benar di platform kami, silakan kirim pemberitahuan DMCA secara terperinci ke email di bawah ini. Mohon sertakan deskripsi materi berhak cipta, detail kontak anda, dan pernyataan itikad baik. Kami berkomitmen untuk menyelesaikan masalah ini sesegera mungkin dan kami menghargai kerja sama anda dalam menjaga sudo-flix sebagai tempat yang menghormati kreativitas dan hak cipta.", + "title": "DMCA" + }, + "loadingApp": "Memuat aplikasi", + "loadingUser": "Memuat profil anda", + "loadingUserError": { + "logout": "Keluar", + "reset": "Reset server khusus", + "text": "Gagal memuat profil anda", + "textWithReset": "Gagal memuat profil anda dari server khusus yang anda pilih, ingin kembali ke server default?" + }, + "migration": { + "failed": "Gagal memigrasi data anda.", + "inProgress": "Mohon tunggu, kami sedang memigrasi data anda. Ini tidak akan memakan waktu lama." + } + }, + "settings": { + "account": { + "accountDetails": { + "deviceNameLabel": "Nama perangkat", + "deviceNamePlaceholder": "Ponsel personal", + "editProfile": "Ubah", + "logoutButton": "Keluar" + }, + "actions": { + "delete": { + "button": "Hapus akun", + "confirmButton": "Hapus akun", + "confirmDescription": "Apakah anda yakin ingin menghapus akun anda? Seluruh data anda akan hilang!", + "confirmTitle": "Apakah anda yakin?", + "text": "Tindakan ini tidak dapat dibatalkan. Seluruh data akan dihapus dan tidak dapat dipulihkan.", + "title": "Hapus akun" + }, + "title": "Tindakan" + }, + "devices": { + "deviceNameLabel": "Nama perangkat", + "failed": "Gagal memuat sesi", + "removeDevice": "Hapus", + "title": "Perangkat" + }, + "profile": { + "finish": "Selesai mengubah", + "firstColor": "Gradasi warna profil pertama", + "secondColor": "Gradasi warna profil kedua", + "title": "Ubah foto profil", + "userIcon": "Ikon pengguna" + }, + "register": { + "cta": "Memulai", + "text": "Bagikan dan sinkronkan antar perangkat progres tontonan anda.", + "title": "Sinkronkan ke cloud" + }, + "title": "Akun" + }, + "appearance": { + "activeTheme": "Aktif", + "themes": { + "blue": "Biru", + "default": "Default", + "gray": "Abu", + "red": "Merah", + "teal": "Hijau" + }, + "title": "Tampilan" + }, + "connections": { + "server": { + "description": "Jika anda ingin menghubungkan dengan backend khusus untuk menyimpan data, hidupkan ini dan masukkan URL-nya.", + "label": "Server khusus", + "urlLabel": "URL server khusus" + }, + "title": "Koneksi", + "workers": { + "addButton": "Tambah worker baru", + "description": "Agar aplikasi dapat bekerja, seluruh koneksi dialihkan menggunakan proxy. Hidupkan ini jika anda ingin menggunakan worker khusus.", + "emptyState": "Belum ada worker, tambahkan dibawah", + "label": "Gunakan proxy worker khusus", + "urlLabel": "URL worker", + "urlPlaceholder": "https://" + } + }, + "reset": "Reset", + "save": "Simpan", + "sidebar": { + "info": { + "appVersion": "Versi aplikasi", + "backendUrl": "URL Backend", + "backendVersion": "Versi Backend", + "hostname": "Nama host", + "insecure": "Tidak aman", + "notLoggedIn": "Anda belum masuk ke akun anda", + "secure": "Aman", + "title": "Informasi aplikasi", + "unknownVersion": "Tidak diketahui", + "userId": "ID pengguna" + } + }, + "subtitles": { + "backgroundLabel": "Transparansi latar belakang", + "colorLabel": "Warna teks", + "previewQuote": "Jangan takut. Ketakutan adalah pembunuh pikiran.", + "textSizeLabel": "Ukuran teks", + "title": "Subtitle" + }, + "unsaved": "Anda memiliki perubahan yang belum disimpan" + } +} diff --git a/src/assets/locales/is-IS.json b/src/assets/locales/is-IS.json new file mode 100644 index 00000000..0bd89354 --- /dev/null +++ b/src/assets/locales/is-IS.json @@ -0,0 +1,305 @@ +{ + "about": { + "description": "sudo-flix er vefforrit sem leitar á netinu að straumum. Markmið liðsins er naumhyggju nálgun á að horfa á efni.", + "faqTitle": "Algengar spurningar", + "q1": { + "body": "sudo-flix hýsir ekki neitt efni. Þegar þú ýtir á eitthvað til að horfa á, leitað er á netinu fyrir það efni (Þú getur séð hvaða heimild við erum að nota á hleðslu skjánum og í 'myndbands heimildir' flipanum). Skrár eru aldrei settar in af sudo-flix, allt er í gegnum leitarvél.", + "title": "Hvaðan kemur efnið?" + }, + "q2": { + "body": "Þú getur ekki beðið um þætti eða myndir, sudo-flix stýrir ekki neinu efni. Allt efni er skoðað í gegnum heimildir á netinu.", + "title": "Hvar get ég beðið um þætti eða myndir?" + }, + "q3": { + "body": "Okkar leitar niðurstöður eru knúnar af The Movie Database (TMDB) og eru sýndar þótt að okkar heimildir hafa ekki efnið.", + "title": "Leitarniðurstöðurnar sýna þættina eða myndina, af hverju get ég ekki spilað það?" + }, + "title": "Um sudo-flix" + }, + "actions": { + "copied": "Afritað", + "copy": "Afrita" + }, + "auth": { + "createAccount": "Hefurðu ekki reikning ennþá? <0>Búðu til reikning.", + "deviceNameLabel": "Nafn tækis", + "deviceNamePlaceholder": "Einkasími", + "generate": { + "description": "Þitt lykilorð lætur eins og notandanafn og lykilorð. Vertu viss um að halda því öruggu út að þú munt þurfa að nota það til að komast inn í reikningin þinn", + "next": "Ég hef vistað lykilorðið mitt", + "passphraseFrameLabel": "Lykilorð", + "title": "Þitt lykilorð" + }, + "hasAccount": "Hefurðu reikning nú þegar? <0>Skráðu þig inn hér.", + "login": { + "description": "Vinsamlegast sláðu inn lykilorðið þitt til þess að skrá þig inn í reikningin þinn", + "deviceLengthError": "Vinsamlegast settu inn nafn fyrir tækið þitt", + "passphraseLabel": "12-Orða lykilorð", + "passphrasePlaceholder": "Lykilorð", + "submit": "Skrá inn", + "title": "Skráðu þig inn í reikningin þinn", + "validationError": "Vitlaust eða óklárað lykilorð" + }, + "register": { + "information": { + "color1": "Prófíl litur eitt", + "color2": "Prófíl litur tvö", + "header": "Sláðu inn nafn fyrir tækið þitt og veldu liti og notanda tákn að þínu vali", + "icon": "Notanda tákn", + "next": "Næst", + "title": "Reiknings upplýsingar" + } + }, + "trust": { + "failed": { + "text": "Stilltirðu það rétt?", + "title": "Náðist ekki í netþjón" + }, + "host": "Þú ert að tengjast við <0>{{hostname}} - vinsamlegast staðfestu að þú treystir því áður en þú býrð til reikning", + "no": "Fara til baka", + "title": "Treystir þú þessum netþjóni?", + "yes": "Ég treysti þessum netþjóni" + }, + "verify": { + "description": "Vinsamlegst sláðu inn lykilorðið þitt frá því áðan til þess að staðfesta að þú hefur vistað það og til að stofna nýjan reikning", + "invalidData": "Gögn eru ekki gild", + "noMatch": "Lykilorð passar ekki saman", + "passphraseLabel": "Þitt 12-orða lykilorð", + "recaptchaFailed": "ReCaptcha staðfesting mistókst", + "register": "Stofna reikning", + "title": "Staðfestu þitt lykilorð" + } + }, + "errors": { + "badge": "Það bilaði", + "details": "Villu upplýsingar", + "reloadPage": "Endurhlaðaðu vefsíðuna", + "showError": "Sýna villu upplýsingar", + "title": "Við lentum í villu!" + }, + "footer": { + "legal": { + "disclaimer": "Fyrirvari", + "disclaimerText": "sudo-flix hýsir engar skrár, það tengist eingöngu þjónustu þriðja aðila. Lagleg atriði ættu að vera rætt við skráarhýsinga og veitanda. sudo-flix er ekki ábyrg fyrir neinum skrám sýndar af myndbands veitöndum." + }, + "tagline": "Horfðu á uppáhalds þætti og myndirnar þínar með þessu opna hugbúnaða forriti." + }, + "global": { + "pages": { + "about": "Um", + "login": "Skrá inn", + "onboarding": "Setja upp", + "register": "Skrá", + "settings": "Stillingar" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "Bókamerki" + }, + "continueWatching": { + "sectionTitle": "Haltu Áfram Að Horfa" + }, + "mediaList": { + "stopEditing": "Hætta að breyta" + }, + "search": { + "allResults": "Þetta er allt sem við höfum!", + "failed": "Mostókst að finna miðil, reyndu aftur!", + "loading": "Hlaðið...", + "noResults": "Við gátum ekki fundið neitt!", + "placeholder": "Hvað viltu horfa á?", + "sectionTitle": "Leitar niðurstöður" + }, + "titles": { + "day": { + "default": "Hvað myndirðu vilja horfa á þetta kvöldið?", + "extra": [ + "Fynnst þér þú vera ævintýralegur? Jurrasic Park gæti verið fullkomna valið." + ] + }, + "morning": { + "default": "Hvað myndirðu vilja horfa á þessum morgni?", + "extra": ["Ég heyrði að Before Sunrise sé góð"] + }, + "night": { + "default": "Hvað myndirðu vilja horfa á í nótt?", + "extra": ["Þreytt? Ég heyrði að The Exorcist sé góð."] + } + } + }, + "media": { + "episodeDisplay": "S{{season}} Þ{{episode}}", + "types": { + "movie": "Mynd", + "show": "Þáttur" + } + }, + "navigation": { + "banner": { + "offline": "Athugaðu net tengingu þína" + }, + "menu": { + "about": "Um okkur", + "donation": "Gefa", + "logout": "Skrá út", + "register": "Samstilla við ský", + "settings": "Stillingar", + "support": "Stuðningur" + } + }, + "notFound": { + "badge": "Ekki fundið", + "goHome": "Aftur heim", + "message": "Við leituðum alls staðar: undir ruslafötunum, inn í skápnum, á bakvið proxy þjónin en við gátum ekki fundið síðuna sem þú ert að leita af.", + "title": "Gat ekki fundið síðu" + }, + "overlays": { + "close": "Loka" + }, + "player": { + "back": { + "default": "Aftur heim", + "short": "Til baka" + }, + "casting": { + "enabled": "Steypandi í tæki..." + }, + "menus": { + "downloads": { + "disclaimer": "Niðurhalningar eru teknar beint frá heimildini. sudo-flix hefur engan kraft yfir hvernig niðurhalningarnar eru gefnar.", + "downloadPlaylist": "Hlaða niður spilarlista", + "downloadSubtitle": "Hlaða niður nú verandi texta", + "downloadVideo": "Hlaða niður myndbandi", + "hlsDisclaimer": "Niðurhalningar eru teknar beint frá heimildini. sudo-flix hefur engan kraft yfir hvernig niðurhalningarnar eru gefnar.

    Vinsamlegast fattaðu að þú ert að niðurhala HLS spilunarlista, Það erekki mælt með að niðurhala ef þú kannt ekki mikið á háþróað streymis sniði.. Reyndu aðrar heimildir fyrir önnur sniði.", + "onAndroid": { + "shortTitle": "Hlaða niður / Android", + "title": "Að hlaða niður á Android" + }, + "onIos": { + "shortTitle": "Hlaða niður / iOS", + "title": "Að hlaða niður á iOS" + }, + "onPc": { + "shortTitle": "Hlaða niður / PC", + "title": "Að hlaða niður á PC" + }, + "title": "Hlaða niður" + }, + "episodes": { + "button": "Þættir", + "emptyState": "Það eru engir þættir í þessari seríu, kíktu aftur seinna!", + "episodeBadge": "Þ{{episode}}", + "loadingError": "Villa að hlaða seríu", + "loadingList": "Hleðsla...", + "loadingTitle": "Hleðsla...", + "unairedEpisodes": "Einn eða fleiri þættir í þessari seríu eru ekki komnir, út að þeir hafa ekki komið út." + }, + "playback": { + "speedLabel": "Spilunarhraði", + "title": "Spilunar stillingar" + }, + "quality": { + "automaticLabel": "Sjálfkrafa gæði", + "title": "Gæði" + }, + "settings": { + "downloadItem": "Niðurhala", + "enableSubtitles": "Virkja texta", + "experienceSection": "Útsýnis upplifun", + "playbackItem": "Spilunar stillingar", + "qualityItem": "Gæði", + "sourceItem": "Myndbands heimildir", + "subtitleItem": "Texta stillingar", + "videoSection": "Myndbands stillingar" + }, + "sources": { + "failed": { + "text": "Það kom upp villa á meðan við vorum að reyna að finna myndbönd, vinsamlegast reyndu að nota aðra heimild.", + "title": "Skröpun mistókst" + }, + "noEmbeds": { + "text": "Við gátum ekki fundið neina innfellu, vinsamlegast reyndu að nota aðra heimild.", + "title": "Engar innifellur fundnar" + }, + "noStream": { + "text": "Þessi heimild hefur engin streymi fyrir þessa mynd eða þætti.", + "title": "Ekkert streymi" + }, + "title": "Heimildir", + "unknownOption": "Óvitað" + }, + "subtitles": { + "customChoice": "Veldu texta frá skrá", + "customizeLabel": "Sérsníða", + "offChoice": "Af", + "settings": { + "backlink": "Sérsniðir textar", + "delay": "Texta seinkun", + "fixCapitals": "Lagaðu hástafi" + }, + "title": "Textar", + "unknownLanguage": "Óvitað" + } + }, + "metadata": { + "dmca": { + "badge": "Fjarlæga", + "title": "Miðill hefur verið fjarlægður" + }, + "extensionPermission": { + "badge": "Leyfi vantar", + "button": "Nota viðbótina", + "title": "Stilltu viðbótina" + }, + "failed": { + "badge": "Mistókst", + "homeButton": "Fara heim" + }, + "notFound": { + "badge": "Ekki fundið", + "homeButton": "Aftur heim", + "title": "Gat ekki fundið miðil." + } + }, + "nextEpisode": { + "cancel": "Hætta við", + "next": "Næsti þáttur" + }, + "playbackError": { + "badge": "Spilunar villa", + "errors": { + "errorGenericMedia": "Óvituð miðla villa átti sér stað." + }, + "homeButton": "Fara heim", + "title": "Spilun myndbands mistóksts!" + }, + "scraping": { + "items": { + "failure": "Villa kom upp", + "notFound": "Hefur ekki myndbandið", + "pending": "Leitandi af myndböndum..." + }, + "notFound": { + "badge": "Ekki fundið", + "detailsButton": "Sýna smáatriði", + "homeButton": "Fara heim", + "title": "Við gátum ekki fundið þetta" + } + }, + "turnstile": { + "description": "Vinsamlegast sannreyndu að þú sért manneskja með því að klára Captcha-ið til hægri. Þetta er til þess að halda sudo-flix öruggu!", + "error": "Mistókst að sannreyna að þú sért manneskja. Vinsamlegast reyndu aftur.", + "title": "Við þurfum að sannræna að þú ert manneskja.", + "verifyingHumanity": "Að sannræna að þú sért manneskja..." + } + }, + "screens": { + "loadingApp": "Hlaðandi forriti", + "loadingUser": "Hlaðandi þínum reikningi", + "loadingUserError": { + "logout": "Skrá út", + "reset": "Endurstilla sérsniðin netþjón" + } + } +} diff --git a/src/assets/locales/it.json b/src/assets/locales/it.json new file mode 100644 index 00000000..869d50bb --- /dev/null +++ b/src/assets/locales/it.json @@ -0,0 +1,533 @@ +{ + "about": { + "description": "sudo-flix è un'applicazione web che cerca per gli stream sull'internet. Il team cerca di usare un approccio per lo più minimalista per usufruire del contenuto.", + "faqTitle": "Domande comuni", + "q1": { + "body": "sudo-flix non ospita alcun contento. Quando clicci su qualcosa da guardare, sudo-flix cerca l'internet per media di vostra scelta (Sull schermata di caricamento e nell tab 'sorgenti video' si può vedere quale sorgente si sta utilizzando). I media non sono mai caricati da sudo-flix, tutto è attraverso questo meccanismo di ricerca.", + "title": "Da dove arriva il contenuto?" + }, + "q2": { + "body": "Non è possibile richiedere uno show o un film, sudo-flix non gestisce alcun contenuto. Tutti i contenuti sono visualizzati da sorgenti online.", + "title": "Dove posso richiedere una serie o un film?" + }, + "q3": { + "body": "Nostri risultati sono alimentati da «The Movie Database (TMDB)» e visualizzare indipendentemente dal fatto che nostri sorgenti hanno effettivamente il contenuto.", + "title": "I risultati di ricerca mostrano la serie o il film, perché non posso riprodurlo?" + }, + "title": "Su di sudo-flix" + }, + "actions": { + "copied": "Copiato", + "copy": "Copia" + }, + "auth": { + "createAccount": "Non hai ancora un account? <0>Crea un account.", + "deviceNameLabel": "Nome del dispositivo", + "deviceNamePlaceholder": "Telefono personale", + "generate": { + "description": "La tua frase password agisce come il tuo nome utente e password. Assicurati di tenerla al sicuro dato che ti servirà per accedere al tuo account", + "next": "Ho salvato il mio frase password", + "passphraseFrameLabel": "Frase password", + "title": "La tua frase password" + }, + "hasAccount": "Hai già un account? <0>Accedi ", + "login": { + "description": "Inserisci la tua frase password per accedere al proprio account", + "deviceLengthError": "Inserisci un nome per il dispositivo", + "passphraseLabel": "Frase password di 12 parole", + "passphrasePlaceholder": "Frase password", + "submit": "Accedi", + "title": "Accedi al proprio account", + "validationError": "Frase password incompleta o sbagliata" + }, + "register": { + "information": { + "color1": "Colore profilo uno", + "color2": "Colore profilo due", + "header": "Inserisci un nome per il tuo dispositivo e seleziona, un colore e un'icona utente a tua scelta", + "icon": "Icona utente", + "next": "Avanti", + "title": "Informazioni sull'account" + } + }, + "trust": { + "failed": { + "text": "L'avete configurata correttamente?", + "title": "Impossibile raggiungere il server" + }, + "host": "Ti stai collegando a <0>{{hostname}} - conferma la tua fiducia prima di creare un account", + "no": "Indietro", + "title": "Ti fidi di questo server?", + "yes": "Mi fido di questo server" + }, + "verify": { + "description": "Inserisci il tuo frase password da prima per confermare che è salvato per creare il proprio account", + "invalidData": "I dati non sono validi", + "noMatch": "Frase password non corrisponde", + "passphraseLabel": "La propria frase password di 12 parole", + "recaptchaFailed": "Validazione ReCaptcha fallita", + "register": "Crea account", + "title": "Conferma la propria frase password" + } + }, + "errors": { + "badge": "Si è rotto", + "details": "Dettagli errore", + "reloadPage": "Ricarica la pagina", + "showError": "Mostra dettagli dell'errore", + "title": "Si è verificato un errore!" + }, + "footer": { + "legal": { + "disclaimer": "Disclaimer", + "disclaimerText": "sudo-flix non ospita qualsiasi file, si collega solo a fonti di terze parti. Se avete problemi legali, rivolgetevi ai file host e ai provider. sudo-flix non è responsabile per i file multimediali mostrati dai video provider." + }, + "links": { + "discord": "Discord", + "dmca": "DMCA", + "github": "GitHub" + }, + "tagline": "Guardate i vostri preferiti programmi televisivi e film con questo app di streaming open source." + }, + "global": { + "name": "sudo-flix", + "pages": { + "about": "Su di sudo-flix", + "dmca": "DMCA", + "login": "Accedi", + "onboarding": "Setup", + "pagetitle": "{{title}} - sudo-flix", + "register": "Registrarsi", + "settings": "Impostazioni" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "Segnalibri" + }, + "continueWatching": { + "sectionTitle": "Continua a guardare" + }, + "mediaList": { + "stopEditing": "Smettere di modificare" + }, + "search": { + "allResults": "È tutto ciò che abbiamo!", + "failed": "Impossibile trovare i media, riprova!", + "loading": "Caricamento...", + "noResults": "Non abbiamo trovato nulla!", + "placeholder": "Cosa vuoi guardare?", + "sectionTitle": "Risultati della ricerca" + }, + "titles": { + "day": { + "default": "Cosa vorresti guardare questo pomeriggio?", + "extra": [ + "Senti avventuroso? Jurassic Park potrebbe essere la scelta perfetta." + ] + }, + "morning": { + "default": "Cosa vorresti guardare questa mattina?", + "extra": ["Ho sentito che «Prima Dell'alba» è buono"] + }, + "night": { + "default": "Cosa vorresti guardare questa sera?", + "extra": ["Stanco? Ho sentito che L'esorciccio è buono."] + } + } + }, + "media": { + "episodeDisplay": "S{{season}} E{{episode}}", + "types": { + "movie": "Film", + "show": "Serie" + } + }, + "navigation": { + "banner": { + "offline": "Controlla la tua connessione internet" + }, + "menu": { + "about": "Su di sudo-flix", + "donation": "Donare", + "logout": "Esci", + "register": "Sincronizzare con il cloud", + "settings": "Impostazioni", + "support": "Impostazioni" + } + }, + "notFound": { + "badge": "Non trovato", + "goHome": "Torna alla pagina iniziale", + "message": "Abbiamo cercato ovunque: sotto i bidoni, nell'armadio, dietro il proxy, ma alla fine non siamo riusciti a trovare la pagina che stai cercando.", + "title": "Impossibile trovare quella pagina" + }, + "onboarding": { + "defaultConfirm": { + "cancel": "Annulla", + "confirm": "Utilizzare setup predefinita", + "description": "Il setup predefinita non offre i migliori stream e può essere incredibilmente lento.", + "title": "Sei sicuro?" + }, + "extension": { + "back": "Torna indietro", + "explainer": "Utilizzando l'estensione del browser, è possibile ottenere i stream ottimi che abbiamo da offrire. Basta una semplice installazione.", + "explainerIos": "Purtroppo, l'estensione del browser non è supportato su IOS, premere Torna indietro per scegliere un'altra opzione.", + "extensionHelp": "Se avete installato l'estensione ma non viene rilevata. Aprire l'estensione attraverso il menu delle estensioni del browser e seguire i passaggi sullo schermo.", + "linkChrome": "Installa l'estensione su Chrome", + "linkFirefox": "Installa l'estensione su Firefox", + "notDetecting": "Installato su Chrome ma non viene visualizzato? Prova a ricaricare la pagina!", + "notDetectingAction": "Ricarica pagina", + "status": { + "disallowed": "L'estensione non è attivato per questa pagina", + "disallowedAction": "Attiva l'estensione", + "failed": "Richiesta di stato fallita", + "loading": "In attesa di installare l'estensione", + "outdated": "Versione dell'estensione troppo vecchia", + "success": "L'estensione funziona come previsto!" + }, + "submit": "Continua", + "title": "Iniziamo con un'estensione" + }, + "proxy": { + "back": "Torna indietro", + "explainer": "Con il metodo proxy, è possibile ottenere stream di qualità ottima creando un proxy self-service.", + "input": { + "errorConnection": "Impossibile connettere al proxy", + "errorInvalidUrl": "URL non valido", + "errorNotProxy": "Avevamo previsto un proxy, ma abbiamo ottenuto un sito web", + "label": "URL proxy", + "placeholder": "https://" + }, + "link": "Impare a creare un proxy", + "submit": "Invia proxy", + "title": "Creiamo un nuovo proxy" + }, + "start": { + "explainer": "Per ottenere i migliori streaming possibili. È necessario scegliere il metodo di streaming da utilizzare.", + "options": { + "default": { + "text": "Non voglio stream di buona qualità, <0 /> <1>usa setup predefinita" + }, + "extension": { + "action": "Installa l'estensione", + "description": "Installate l'estensione del browser per accedere alle migliori sorgenti.", + "quality": "Migliore qualità", + "title": "Estensione del browser" + }, + "proxy": { + "action": "Setup proxy", + "description": "Configurate un proxy in soli 5 minuti e ottenete l'accesso a ottimi fonti.", + "quality": "Buona qualità", + "title": "Proxy personalizzato" + } + }, + "title": "Configuriamo sudo-flix" + } + }, + "overlays": { + "close": "Chiudi" + }, + "player": { + "back": { + "default": "Torna alla pagina iniziale", + "short": "Indietro" + }, + "casting": { + "enabled": "Casting al dispositivo.." + }, + "menus": { + "downloads": { + "disclaimer": "I download vengono effettuati direttamente dal provider. sudo-flix non ha il controllo sulle modalità di fornitura dei download.", + "downloadPlaylist": "Scarica playlist", + "downloadSubtitle": "Scarica sottotitolo attuale", + "downloadVideo": "Scarica video", + "hlsDisclaimer": "I download vengono effettuati direttamente dal provider. sudo-flix non ha il controllo sul modo in cui i download vengono forniti.

    Nota che se state scaricando un playlist HLS, non è raccomandato di scaricare se non si ha familiarità con i formati di streaming avanzati. Prova altri sorgenti per diversi formati.", + "onAndroid": { + "1": "Per scaricare su Android, fai clic sul pulsante di scaricare, e poi nella nuova paggina, toccare e tenere premuto sul video, e selezionare salva.", + "shortTitle": "Scarica / Android", + "title": "Scaricare su Android" + }, + "onIos": { + "1": "Per scaricare su iOS, fai clic sul pulsante di scaricare, e poi nella nuova paggina, fai clic su e poiSalva su FIle .", + "shortTitle": "Scarica / iOS", + "title": "Scaricare su iOS" + }, + "onPc": { + "1": "Sul PC, fare clic sul pulsante di downloa, e poi nella nuova pagina, fai clic destro sul video e selezionare Salva video come", + "shortTitle": "Scarica / PC", + "title": "Scaricare su PC" + }, + "title": "Scarica" + }, + "episodes": { + "button": "Episodi", + "emptyState": "Non ci sono episodi in questa stagione, controlla più tardi!", + "episodeBadge": "E{{episode}}", + "loadingError": "Errore nel caricare la stagione", + "loadingList": "Caricamento...", + "loadingTitle": "Caricamento...", + "unairedEpisodes": "Uno o più episodi di questa stagione sono stati disabilitati perché non sono ancora andati in onda." + }, + "playback": { + "speedLabel": "Velocità di riproduzione", + "title": "Impostazioni di riproduzione" + }, + "quality": { + "automaticLabel": "Qualità automatica", + "hint": "Si può provare <0>cambiare sorgente per prendere diverse opzioni di qualità.", + "iosNoQuality": "A causa delle limitazioni imposti da Apple, la selezione della qualità non è disponibile su iOS per questa sorgente. Si può provare a <0>passare a un'altra sorgente per scegliere opzioni di qualità diverse.", + "title": "Qualità" + }, + "settings": { + "downloadItem": "Scarica", + "enableSubtitles": "Abilita i sottotitoli", + "experienceSection": "Esperienza di visione", + "playbackItem": "Impostazioni di riproduzione", + "qualityItem": "Qualità", + "sourceItem": "Sorgenti video", + "subtitleItem": "Impostazioni sottotitoli", + "videoSection": "Impostazioni video" + }, + "sources": { + "failed": { + "text": "Si è verificato un errore trovare i video, provare con un'altra sorgente.", + "title": "Impossibile raschiare" + }, + "noEmbeds": { + "text": "Non è stato possibile trovare alcun embed, provare con un'altra sorgente.", + "title": "Nessun embed trovato" + }, + "noStream": { + "text": "Questa fonte non ha flussi per questo film o serie.", + "title": "Nessun flusso" + }, + "title": "Sorgenti", + "unknownOption": "Sconosciuto" + }, + "subtitles": { + "customChoice": "Selezionare i sottotitoli dal file", + "customizeLabel": "Personalizzare", + "offChoice": "Spento", + "settings": { + "backlink": "Sottotitoli personalizzati", + "delay": "Ritardo del sottotitolo", + "fixCapitals": "Correggere la capitalizzazione" + }, + "title": "Sottotitoli", + "unknownLanguage": "Sconosciuto" + } + }, + "metadata": { + "api": { + "text": "Impossibile caricare metadati API, verifica la connessione internet.", + "title": "Impossibile caricare metadati API" + }, + "dmca": { + "badge": "Rimosso", + "text": "Questa media non è più disponibile a causa di un notizia takedown o un rivendicazione di copyright.", + "title": "I media sono stati rimossi" + }, + "extensionPermission": { + "badge": "Permesso mancato", + "button": "Usa l'estensione", + "text": "Avete l'estensione del browser, ma serve il vostro permesso per iniziare usare l'estensione.", + "title": "Configura l'estensione" + }, + "failed": { + "badge": "Fallito", + "homeButton": "Vai alla pagina iniziale", + "text": "Impossibile caricare i metadati da TMDB. Verifica che TMDB è offline o bloccato sulla propria connessione Internet.", + "title": "Impossibile caricare i metadati" + }, + "notFound": { + "badge": "Non trovato", + "homeButton": "Torna alla pagina iniziale", + "text": "Non siamo riusciti a trovare il media richiesto. È stato rimosso o hai manomesso l'URL.", + "title": "Impossibile trovare quel media." + } + }, + "nextEpisode": { + "cancel": "Cancella", + "next": "Prossimo episodio" + }, + "playbackError": { + "badge": "Errore di riproduzione", + "errors": { + "errorAborted": "Il recupero del media è stato interrotto dalla richiesta dell'utente.", + "errorDecode": "Nonostante sia stato precedentemente stabilito che è utilizzabile, si è verificato un errore decodifica della risorsa multimediale, con conseguente errore.", + "errorGenericMedia": "Errore multimediale sconosciuto si è verificato.", + "errorNetwork": "Si è verificato un errore di rete che ha impedito il recupero del supporto, nonostante fosse precedentemente disponibile.", + "errorNotSupported": "L'oggetto media o media provider non è supportato." + }, + "homeButton": "Torna a pagina iniziale", + "text": "Si è verificato un errore cercando di riprodurre i media. Riprova.", + "title": "Impossibile riprodurre il video!" + }, + "scraping": { + "items": { + "failure": "Si è verificato un errore", + "notFound": "Non ha il video", + "pending": "Controllo per video..." + }, + "notFound": { + "badge": "Non trovato", + "detailsButton": "Mostra i dettagli", + "homeButton": "Torna a pagina iniziale", + "text": "Abbiamo cercato tra i nostri fornitori e non abbiamo trovato i media che state cercando! Non ospitiamo i media e non abbiamo alcun controllo su ciò che è disponibile. Per maggiori dettagli, fare clic su \"Mostra i dettagli\" qui sotto.", + "title": "Non siamo riusciti a trovare quello" + } + }, + "time": { + "regular": "{{timeWatched}} / {{duration}}", + "remaining": "{{timeLeft}} rimasto • Finisce a {{timeFinished, datetime}}", + "shortRegular": "{{timeWatched}}", + "shortRemaining": "-{{timeLeft}}" + }, + "turnstile": { + "description": "Verifica che siate umani completando il Captcha sulla destra. Questo serve a mantenere sudo-flix sicuro!", + "error": "Impossibile verificare il proprio umanità. Riprova.", + "title": "Dobbiamo verificare che lei sia umano.", + "verifyingHumanity": "verificare il proprio umanità..." + } + }, + "screens": { + "dmca": { + "text": "Benvenuti nella pagina di contatto DMCA di sudo-flix! Rispettiamo i diritti di proprietà intellettuale e vogliamo risolvere rapidamente qualsiasi problema di copyright. Se ritenete che il vostro lavoro protetto da copyright sia stato utilizzato in modo improprio sulla nostra piattaforma, inviate una notizia DMCA all'indirizzo e-mail indicato di seguito. Dovresti includere una descrizione del materiale protetto da copyright, i propri dati di contatto e una dichiarazione di buona fede. Ci impegniamo a risolvere tempestivamente questi problemi e apprezziamo la vostra collaborazione per mantenere sudo-flix un luogo che rispetta la creatività e i diritti d'autore.", + "title": "DMCA" + }, + "loadingApp": "Caricamento dell'applicazione", + "loadingUser": "Caricamento del proprio profilo", + "loadingUserError": { + "logout": "Esci", + "reset": "Ripristino del server personalizzato", + "text": "Impossibile caricare il proprio profilo", + "textWithReset": "Impossibile caricare il proprio profile dal server personalizzato, vorresti ripristinare il server predefinito?" + }, + "migration": { + "failed": "Impossible migrare i propri dati.", + "inProgress": "Attendere, stiamo migrando i propri dati." + } + }, + "settings": { + "account": { + "accountDetails": { + "deviceNameLabel": "Nome del dispositivo", + "deviceNamePlaceholder": "Telefono personale", + "editProfile": "Modifica", + "logoutButton": "Esci" + }, + "actions": { + "delete": { + "button": "Eliminare l'account", + "confirmButton": "Eliminare l'account", + "confirmDescription": "Sei sicuro che vuoi eliminare il proprio account? Tutti i dati propri andranno persi!", + "confirmTitle": "Sei sicuro?", + "text": "Questa azione è irreversibile. Tutti i propri dati verranno eliminati e non sarà possibile recuperare nulla.", + "title": "Eliminare l'account" + }, + "title": "Azioni" + }, + "devices": { + "deviceNameLabel": "Nome dispositivo", + "failed": "Impossibile caricare sessioni", + "removeDevice": "Rimuovi", + "title": "Dispositivi" + }, + "profile": { + "finish": "Finire di modificare", + "firstColor": "Colore del profilo uno", + "secondColor": "Colore del profilo due", + "title": "Modifica l'immagine del profilo", + "userIcon": "Icona utente" + }, + "register": { + "cta": "Inizia", + "text": "Condividete i progressi di film o serie tra i dispositivi e manteneteli sincronizzati.", + "title": "Sincronizzazione con il cloud" + }, + "title": "Account" + }, + "appearance": { + "activeTheme": "Attivo", + "themes": { + "blue": "Blu", + "default": "Predefinito", + "gray": "Grigio", + "red": "Rosso", + "teal": "Verde acqua" + }, + "title": "Aspetto" + }, + "connections": { + "server": { + "description": "Se si desideri connettersi a un backend personalizzato per memorizzare i dati, attivare questo e fornire l'URL. <0>Istruzioni.", + "label": "Server personalizzato", + "urlLabel": "URL del server personalizzato" + }, + "setup": { + "doSetup": "Fare setup", + "errorStatus": { + "description": "Sembra che uno o più articoli in questo setup serve la vostra attenzione.", + "title": "Qualcosa serve la vostra attenzione" + }, + "itemError": "C'è un errore in questo setup. Eseguire nuovamente il setup per correggerlo.", + "items": { + "default": "Setup predefinita", + "extension": "Estensione", + "proxy": "Proxy personalizzato" + }, + "redoSetup": "Rifare setup", + "successStatus": { + "description": "Tutto è pronto per iniziare a guardare i vostri media preferiti.", + "title": "Tutto è setup!" + }, + "unsetStatus": { + "description": "Fare clic sul pulsante a destra per avviare il setup.", + "title": "Non l'avete completato il setup" + } + }, + "title": "Connessioni", + "workers": { + "addButton": "Aggiungere un nuovo lavoratore", + "description": "Per far funzionare l'applicazione, tutto il traffico viene instradato attraverso i proxy. Abilitare questa opzione se si desidera portare i propri lavoratori. <0>Istruzioni.", + "emptyState": "Non ci sono ancora lavoratori, aggiungetene uno sotto", + "label": "Utilizzare proxy worker personalizzati", + "urlLabel": "URL dei lavoratori", + "urlPlaceholder": "https://" + } + }, + "preferences": { + "language": "Lingua di applicazione", + "languageDescription": "Lingua applicato all'intera applicazione.", + "thumbnail": "Generare miniature", + "thumbnailDescription": "Nella maggior parte dei casi, i video non hanno miniature. È possibile attivare questa impostazione per generarle quando è necessario, ma possono rendere il video più lento.", + "thumbnailLabel": "Generare miniature", + "title": "Preferenze" + }, + "reset": "Reset", + "save": "Salva", + "sidebar": { + "info": { + "appVersion": "Versione dell'app", + "backendUrl": "URL backend", + "backendVersion": "Versione backend", + "hostname": "Hostname", + "insecure": "Insicuro", + "notLoggedIn": "Non sei connesso", + "secure": "Sicuro", + "title": "Informazioni dell'app", + "unknownVersion": "Sconosciuto", + "userId": "ID utente" + } + }, + "subtitles": { + "backgroundLabel": "Opacità di sfondo", + "colorLabel": "Colore", + "previewQuote": "Cantami o Diva del pelide Achille l'ira funesta.", + "textSizeLabel": "Dimensione testo", + "title": "Sottotitoli" + }, + "unsaved": "Le modifiche non sono state salvate" + } +} diff --git a/src/assets/locales/ja.json b/src/assets/locales/ja.json new file mode 100644 index 00000000..ec1c9fcc --- /dev/null +++ b/src/assets/locales/ja.json @@ -0,0 +1,109 @@ +{ + "about": { + "description": "sudo-flixは、ウェブアプリケーションで、インターネットを検索してストリームを見つけます。チームは、コンテンツの消費において主にミニマリストなアプローチを目指しています。", + "faqTitle": "一般的な質問", + "q1": { + "body": "sudo-flixはいかなるコンテンツもホストしていません。視聴するために何かをクリックすると、選択したメディアがインターネットで検索されます(ローディング画面と「ビデオソース」タブでは、使用しているソースが表示されます)。メディアは決してsudo-flixにアップロードされず、すべてがこの検索メカニズムを通じて行われます。", + "title": "コンテンツはどこから来ていますか?" + }, + "q2": { + "body": "ショーまたは映画のリクエストはできません。sudo-flixはどのコンテンツも管理していません。すべてのコンテンツはインターネット上のソースを通じて閲覧されます。", + "title": "ショーまたは映画のリクエストはどこでできますか?" + }, + "q3": { + "body": "私たちの検索結果は、The Movie Database(TMDB)によって提供され、実際にはコンテンツを持っているかどうかに関係なく表示されます。", + "title": "検索結果には番組や映画が表示されますが、なぜ再生できないのでしょうか?" + }, + "title": "sudo-flixについて" + }, + "actions": { + "copied": "コピーしました", + "copy": "コピー" + }, + "auth": { + "createAccount": "まだアカウントをお持ちでないですか? <0>アカウントを作成 してください。", + "deviceNameLabel": "デバイス名", + "deviceNamePlaceholder": "個人用の電話", + "generate": { + "description": "パスフレーズはユーザー名とパスワードとして機能します。アカウントにログインする際には必ず入力する必要があるため、安全に保管してください。" + }, + "login": { + "submit": "ログイン", + "title": "自分の口座にログインする" + } + }, + "footer": { + "tagline": "あなたのお気に入りの番組や映画を、このオープンソースのストリーミングアプリで視聴してください。" + }, + "global": { + "name": "映画ウェブ", + "pages": { + "about": "概要", + "login": "ログイン", + "settings": "設定" + } + }, + "home": { + "continueWatching": { + "sectionTitle": "視聴を続ける" + }, + "search": { + "allResults": "それがすべてです!", + "loading": "読み込み中...", + "noResults": "見つかりませんでした!", + "placeholder": "どんな映画を見たい?", + "sectionTitle": "検索結果" + }, + "titles": { + "day": { + "default": "今日の午後はどんな映画を見たい?" + }, + "morning": { + "default": "今朝はどんな映画を見たい?" + }, + "night": { + "default": "今夜はどんな映画を見たい?" + } + } + }, + "media": { + "types": { + "movie": "映画", + "show": "テレビ番組" + } + }, + "navigation": { + "menu": { + "about": "会社概要", + "donation": "寄付", + "logout": "退室", + "register": "クラウドに同期して", + "settings": "設定" + } + }, + "player": { + "menus": { + "episodes": { + "loadingList": "読み込み中...", + "loadingTitle": "読み込み中..." + } + } + }, + "screens": { + "loadingApp": "申込の読み込み", + "loadingUser": "プロフィールの読み込み", + "loadingUserError": { + "logout": "退出" + } + }, + "settings": { + "account": { + "accountDetails": { + "logoutButton": "退室" + }, + "register": { + "title": "クラウドに同期して" + } + } + } +} diff --git a/src/assets/locales/km.json b/src/assets/locales/km.json new file mode 100644 index 00000000..c2928342 --- /dev/null +++ b/src/assets/locales/km.json @@ -0,0 +1,38 @@ +{ + "about": { + "description": "sudo-flix គឺ​ជា​កម្មវិធី​បណ្ដាញវែបសាយ​ដែល​ស្វែងរក​អ៊ីនធឺណិត​សម្រាប់​ការ​ផ្សាយ។ ក្រុមនេះមានគោលបំណងសម្រាប់វិធីសាស្រ្តតិចតួចបំផុតក្នុងការប្រើប្រាស់មាតិកា។", + "faqTitle": "សំណួរទូទៅ", + "q1": { + "body": "sudo-flix មិនផ្ទុកមាតិកាណាមួយទេ។ នៅពេលអ្នកចុចលើអ្វីមួយដើម្បីមើល អ៊ីនធឺណិតត្រូវបានស្វែងរកសម្រាប់មេឌៀដែលបានជ្រើសរើស (នៅលើអេក្រង់ផ្ទុក និងក្នុងផ្ទាំង 'ប្រភពវីដេអូ' អ្នកអាចឃើញប្រភពណាមួយដែលអ្នកកំពុងប្រើ)។ ប្រព័ន្ធផ្សព្វផ្សាយមិនដែលត្រូវបានបង្ហោះដោយគេហទំព័រភាពយន្តនោះទេ អ្វីគ្រប់យ៉ាងគឺតាមរយៈយន្តការស្វែងរកនេះ។", + "title": "តើមាតិកាបានមកពីណា?" + }, + "q2": { + "title": "តើខ្ញុំអាចស្នើសុំកម្មវិធី ឬ ភាពយន្តបាននៅឯណា?" + }, + "q3": { + "body": "លទ្ធផលស្វែងរករបស់យើងត្រូវបានដំណើរការដោយ The Movie Database (TMDB) ហើយបង្ហាញដោយមិនខ្វល់ពីប្រភពរបស់យើងមានខ្លឹមសារឬ​អត់ទេ។", + "title": "លទ្ធផលស្វែងរកបង្ហាញកម្មវិធី ឬ ភាពយន្ត ហេតុអ្វីខ្ញុំមិនអាចមើលបាន?" + }, + "title": "អំពី sudo-flix" + }, + "actions": { + "copied": "បានចម្លង", + "copy": "ចម្លង" + }, + "auth": { + "createAccount": "មិនទាន់មានគណនីមែនទេ? <0>បង្កើតគណនី", + "deviceNameLabel": "ឈ្មោះឧបករណ៍", + "deviceNamePlaceholder": "ទូរស័ព្ទផ្ទាល់ខ្លួន", + "generate": { + "description": "ឃ្លាសម្ងាត់របស់អ្នកដើរតួជាឈ្មោះអ្នកប្រើប្រាស់ និងពាក្យសម្ងាត់របស់អ្នក។ ត្រូវប្រាកដថារក្សាវាឱ្យមានសុវត្ថិភាព ព្រោះអ្នកនឹងត្រូវបញ្ចូលវាដើម្បីចូលគណនីរបស់អ្នក", + "next": "ខ្ញុំបានរក្សាទុកឃ្លាសម្ងាត់របស់ខ្ញុំរួចហើយ", + "passphraseFrameLabel": "ឃ្លាសម្ងាត់", + "title": "ឃ្លាសម្ងាត់របស់អ្នក" + }, + "hasAccount": "មានគណនីរួចហើយ? <0>ចូលទីនេះ", + "login": { + "description": "សូមបញ្ចូលឃ្លាសម្ងាត់របស់អ្នក ដើម្បីចូលគណនីរបស់អ្នក", + "deviceLengthError": "សូមបញ្ចូលឈ្មោះឧបករណ៍" + } + } +} diff --git a/src/assets/locales/ko.json b/src/assets/locales/ko.json new file mode 100644 index 00000000..728f8054 --- /dev/null +++ b/src/assets/locales/ko.json @@ -0,0 +1,402 @@ +{ + "about": { + "description": "sudo-flix은 인터넷에서 스트림을 검색하는 웹 애플리케이션입니다. 저희 팀은 콘텐츠 소비에 대한 최소한의 접근 방식을 지향합니다.", + "faqTitle": "자주 묻는 질문", + "q1": { + "body": "sudo-flix은 어떠한 콘텐츠도 호스팅하지 않습니다. 시청할 콘텐츠를 클릭하면 인터넷에서 선택한 미디어가 검색됩니다(로딩 화면과 '비디오 소스' 탭에서 사용 중인 소스를 확인할 수 있습니다). 무비웹에서 미디어를 업로드하지 않으며, 모든 것이 이 검색 메커니즘을 통해 이루어집니다.", + "title": "콘텐츠의 출처는 어디인가요?" + }, + "q2": { + "body": "프로그램이나 영화를 요청할 수 없으며, sudo-flix은 어떠한 콘텐츠도 관리하지 않습니다. 모든 콘텐츠는 인터넷의 소스를 통해 볼 수 있습니다.", + "title": "프로그램이나 영화는 어디에서 요청할 수 있나요?" + }, + "q3": { + "body": "검색 결과는 영화 데이터베이스(TMDB)를 기반으로 하며, 출처에 실제 콘텐츠가 있는지 여부와 관계없이 표시됩니다.", + "title": "검색 결과에 프로그램이나 영화가 표시되는데 왜 재생할 수 없나요?" + }, + "title": "sudo-flix에 대하여" + }, + "actions": { + "copied": "복사되었습니다", + "copy": "복사하기" + }, + "auth": { + "createAccount": "계정이 없으십니까? <0>계정을 생성하세요.", + "deviceNameLabel": "기기명", + "deviceNamePlaceholder": "개인 휴대폰", + "generate": { + "description": "암호문은 사용자 아이디와 비밀번호 역할을 합니다. 계정에 로그인할 때 발급 받은 암호문을 입력해야 하므로 안전하게 보관하세요", + "next": "암호문을 저장했습니다", + "passphraseFrameLabel": "암호문", + "title": "암호 문구" + }, + "hasAccount": "이미 계정을 보유하고 있으십니까? <0>로그인 하기.", + "login": { + "description": "계정에 로그인하기위해 암호문을 입력하세요", + "deviceLengthError": "기기명을 입력하세요", + "passphraseLabel": "12단어 암호 문구", + "passphrasePlaceholder": "암호 문구", + "submit": "로그인", + "title": "계정에 로그인하기", + "validationError": "틀리거나 잘못된 암호문입니다" + }, + "register": { + "information": { + "color1": "프로필 색상 1", + "color2": "프로필 색상 2", + "header": "기기명을 입력하고 원하는 색상과 사용자 아이콘을 선택하세요", + "icon": "유저 아이콘", + "next": "다음", + "title": "계정 정보" + } + }, + "trust": { + "failed": { + "text": "올바르게 구성하셨습니까?", + "title": "서버 연결에 실패했습니다" + }, + "host": "<0>{{hostname}}에 연결 중입니다 - 계정을 만들기 전에 신뢰하는지 확인해 주세요", + "no": "뒤로 가기", + "title": "이 서버를 신뢰하십니까?", + "yes": "네, 신뢰합니다" + }, + "verify": { + "description": "암호문을 저장했는지 확인하고 계정을 만들려면 앞서 입력한 암호문을 입력하세요", + "invalidData": "데이터가 유효하지 않습니다", + "noMatch": "암호문이 일치하지 않습니다", + "passphraseLabel": "12단어 암호 문구", + "recaptchaFailed": "캡챠인증 실패", + "register": "계정 생성", + "title": "암호문 확인" + } + }, + "errors": { + "badge": "어딘가 고장났습니다", + "details": "에러 상세", + "reloadPage": "페이지 새로고침", + "showError": "에러 상세 보기", + "title": "오류가 발생했습니다!" + }, + "footer": { + "legal": { + "disclaimer": "면책 조항", + "disclaimerText": "sudo-flix은 어떠한 파일도 호스팅하지 않으며, 제3자 서비스에 대한 링크만 제공합니다. 법적 문제는 파일 호스트 및 제공업체와 해결해야 합니다. 동영상 제공업체가 표시하는 미디어 파일에 대해 sudo-flix은 책임을 지지 않습니다." + }, + "tagline": "이 오픈 소스 스트리밍 앱으로 좋아하는 프로그램과 영화를 시청하세요." + }, + "global": { + "pages": { + "about": "소개", + "login": "로그인", + "register": "회원가입", + "settings": "설정" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "북마크" + }, + "continueWatching": { + "sectionTitle": "이어보기" + }, + "mediaList": { + "stopEditing": "수정 중지" + }, + "search": { + "allResults": "이게 전부입니다!", + "failed": "미디어 검색에 실패하였습니다, 다시 시도해주세요!", + "loading": "로딩...", + "noResults": "검색결과가 없습니다!", + "placeholder": "무엇을 보고 싶으신가요?", + "sectionTitle": "검색 결과" + }, + "titles": { + "day": { + "default": "오늘 오후에 무엇을 보고 싶으신가요?", + "extra": [ + "모험을 즐기고 싶으신가요? 쥬라기 공원이 완벽한 선택이 될 수 있습니다." + ] + }, + "morning": { + "default": "오늘 아침에 무엇을 보고 싶으신가요?", + "extra": ["Before Sunrise가 좋다고 들었어요"] + }, + "night": { + "default": "오늘 밤에 무엇을 보고 싶으신가요?", + "extra": ["피곤하신가요? The Exorcist가 좋다고 들었어요."] + } + } + }, + "media": { + "types": { + "movie": "영화", + "show": "쇼" + } + }, + "navigation": { + "banner": { + "offline": "인터넷 연결을 확인해주세요" + }, + "menu": { + "about": "서비스 소개", + "donation": "후원", + "logout": "로그아웃", + "register": "클라우드 동기화", + "settings": "설정", + "support": "지원" + } + }, + "notFound": { + "badge": "찾을 수 없음", + "goHome": "메인으로 돌아가기", + "message": "쓰레기통 아래, 옷장, 프록시 뒤 등 모든 곳을 찾아보았지만 결국 원하는 페이지를 찾을 수 없었습니다.", + "title": "해당 페이지를 찾을 수 없습니다" + }, + "overlays": { + "close": "닫기" + }, + "player": { + "back": { + "default": "메인으로 돌아가기", + "short": "뒤로가기" + }, + "casting": { + "enabled": "장치로 전송 중..." + }, + "menus": { + "downloads": { + "disclaimer": "다운로드는 제공업체에서 직접 가져옵니다. sudo-flix은 다운로드 제공 방식을 통제할 수 없습니다.", + "downloadPlaylist": "플레이리스트 다운로드", + "downloadSubtitle": "현재 자막 다운로드", + "downloadVideo": "영상 다운로드", + "hlsDisclaimer": "다운로드는 제공업체에서 직접 가져옵니다. sudo-flix은 다운로드 제공 방식을 통제할 수 없습니다. 고급 멀티미디어 스트리밍에 익숙한 사용자를 위한 HLS 재생 목록을 다운로드하고 있다는 점에 유의하세요.", + "onAndroid": { + "1": "Android에서 다운로드하려면 다운로드 버튼을 클릭한 다음 새 페이지에서 동영상을 길게 눌러저장을 선택합니다.", + "shortTitle": "다운로드 / Android", + "title": "Android에서 다운로드하기" + }, + "onIos": { + "1": "iOS에서 다운로드하려면 다운로드 버튼을 클릭한 다음 새 페이지에서 를 클릭한 다음 파일로 저장 을 클릭합니다.", + "shortTitle": "다운로드 / iOS", + "title": "iOS에서 다운로드하기" + }, + "onPc": { + "1": "PC에서는 다운로드 버튼을 클릭한 다음 새 페이지에서 동영상을 마우스 오른쪽 버튼으로 클릭하고 다른 이름으로 동영상 저장을 선택합니다", + "shortTitle": "다운로드 / PC", + "title": "PC에서 다운로드하기" + }, + "title": "다운로드" + }, + "episodes": { + "button": "회차", + "emptyState": "이번 시즌에는 에피소드가 없으니 나중에 다시 확인하세요!", + "loadingError": "시즌 로딩중 에러 발생", + "loadingList": "로딩...", + "loadingTitle": "로딩..." + }, + "playback": { + "speedLabel": "재생 속도", + "title": "재생 설정" + }, + "quality": { + "automaticLabel": "자동 품질 제어", + "hint": "<0>소스 전환을 사용하여 다양한 화질 옵션을 확인할 수 있습니다.", + "iosNoQuality": "Apple에서 정의한 제한 사항으로 인해 이 소스에 대해 iOS에서 품질 선택을 사용할 수 없습니다. <0>다른 소스로 전환하여 다른 품질 옵션을 사용해 볼 수 있습니다.", + "title": "화질" + }, + "settings": { + "downloadItem": "다운로드", + "enableSubtitles": "자막 활성화", + "experienceSection": "시청 경험", + "playbackItem": "재생 설정", + "qualityItem": "화질", + "sourceItem": "영상 소스", + "subtitleItem": "자막 설정", + "videoSection": "영상 설정" + }, + "sources": { + "failed": { + "text": "동영상을 찾는 동안 오류가 발생했습니다. 다른 소스를 사용해 보세요.", + "title": "스크래핑 실패" + }, + "noEmbeds": { + "text": "임베드를 찾을 수 없습니다. 다른 소스를 사용해 보세요.", + "title": "발견된 임베드없음" + }, + "noStream": { + "text": "이 소스에는 해당 영화 또는 프로그램에 대한 스트림이 없습니다.", + "title": "발견된 스트림 없음" + }, + "title": "소스", + "unknownOption": "알수없음" + }, + "subtitles": { + "customChoice": "파일에서 자막 선택하기", + "customizeLabel": "사용자 정의", + "offChoice": "끔", + "settings": { + "backlink": "자막 커스텀", + "delay": "자막 딜레이", + "fixCapitals": "대문자 표기 수정" + }, + "title": "자막", + "unknownLanguage": "알수없음" + } + }, + "metadata": { + "failed": { + "badge": "실패함", + "homeButton": "메인으로 돌아가기", + "text": "TMDB에서 미디어의 메타데이터를 로드할 수 없습니다. 인터넷 연결에서 TMDB가 다운되었거나 차단되었는지 확인하세요.", + "title": "메타데이터를 불러오지 못했습니다" + }, + "notFound": { + "badge": "찾을 수 없음", + "homeButton": "메인으로 돌아가기", + "text": "요청하신 미디어를 찾을 수 없습니다. 미디어가 삭제되었거나 사용자가 URL을 변조했습니다.", + "title": "해당 미디어를 찾을 수 없습니다." + } + }, + "nextEpisode": { + "cancel": "닫기", + "next": "다음 회차" + }, + "playbackError": { + "badge": "재생 에러", + "errors": { + "errorAborted": "사용자의 요청으로 미디어 가져오기가 중단되었습니다.", + "errorDecode": "이전에 사용 가능한 것으로 확인되었지만 미디어 리소스를 디코딩하는 동안 오류가 발생하여 오류가 발생했습니다.", + "errorGenericMedia": "알 수 없는 미디어 오류가 발생했습니다.", + "errorNetwork": "네트워크 오류가 발생하여 이전에 미디어를 사용할 수 있었으나 미디어를 성공적으로 가져오지 못했습니다.", + "errorNotSupported": "미디어 또는 미디어 공급자 개체는 지원되지 않습니다." + }, + "homeButton": "메인으로 돌아가기", + "text": "미디어를 재생하는 동안 오류가 발생했습니다. 다시 시도해 주세요.", + "title": "동영상 재생에 실패했습니다!" + }, + "scraping": { + "items": { + "failure": "오류 발생", + "notFound": "동영상이 없습니다", + "pending": "동영상 확인 중..." + }, + "notFound": { + "badge": "찾을 수 없음", + "detailsButton": "상세 보기", + "homeButton": "메인으로 돌아가기", + "text": "제공업체를 통해 검색했지만 원하는 미디어를 찾을 수 없습니다! 당사는 해당 미디어를 호스팅하지 않으며 이용 가능한 미디어에 대한 통제권이 없습니다. 자세한 내용을 보려면 아래의 '세부 정보 보기'를 클릭하세요.", + "title": "찾을 수 없습니다" + } + }, + "time": { + "remaining": "{{timeLeft}} 남음 • {{timeFinished, datetime}}에 종료" + } + }, + "screens": { + "dmca": { + "text": "sudo-flix의 DMCA 문의 페이지에 오신 것을 환영합니다! 당사는 지적 재산권을 존중하며 저작권 관련 문제를 신속하게 해결하고자 합니다. 귀하의 저작권이 있는 저작물이 당사 플랫폼에서 부적절하게 사용되었다고 생각되는 경우, 아래 이메일로 자세한 DMCA 통지를 보내주시기 바랍니다. 저작권이 있는 자료에 대한 설명, 연락처 정보, 선의의 신념을 담은 진술서를 포함하시기 바랍니다. 당사는 이러한 문제를 신속하게 해결하기 위해 최선을 다하고 있으며, sudo-flix을 창의성과 저작권을 존중하는 공간으로 유지하는 데 협조해 주셔서 감사합니다." + }, + "loadingApp": "애플리케이션 로딩 중", + "loadingUser": "프로필 로 중", + "loadingUserError": { + "logout": "로그아웃", + "reset": "사용자 지정 서버 초기화", + "text": "프로필을 로드하지 못했습니다", + "textWithReset": "사용자 지정 서버에서 프로필을 불러오는 데 실패하여 기본 서버로 다시 초기화하시겠습니까?" + }, + "migration": { + "failed": "데이터를 마이그레이션하지 못했습니다.", + "inProgress": "데이터를 마이그레이션하는 중이니 잠시만 기다려 주세요. 오래 걸리지 않을 것입니다." + } + }, + "settings": { + "account": { + "accountDetails": { + "deviceNameLabel": "기기명", + "deviceNamePlaceholder": "개인 휴대폰", + "editProfile": "수정", + "logoutButton": "로그아웃" + }, + "actions": { + "delete": { + "button": "계정 삭제", + "confirmButton": "계정 삭제", + "confirmDescription": "정말 계정을 삭제하시겠습니까? 모든 데이터가 손실됩니다!", + "confirmTitle": "진행 할까요?", + "text": "이 작업은 되돌릴 수 없습니다. 모든 데이터가 삭제되며 아무것도 복구할 수 없습니다.", + "title": "계정 삭제" + }, + "title": "작업" + }, + "devices": { + "deviceNameLabel": "기기명", + "failed": "세션을 로드하지 못했습니다", + "removeDevice": "제거", + "title": "기기" + }, + "profile": { + "finish": "수정 완료", + "firstColor": "프로필 색상 1", + "secondColor": "프로필 색상 2", + "title": "프로필 이미지 수정", + "userIcon": "유저 아이콘" + }, + "register": { + "cta": "시작하기", + "text": "기기 간에 시계 진행 상황을 공유하고 동기화 상태를 유지하세요.", + "title": "클라우드에 동기화" + }, + "title": "계정" + }, + "appearance": { + "activeTheme": "활성화", + "themes": { + "blue": "블루", + "default": "기본", + "gray": "그레", + "red": "레드", + "teal": "청록" + }, + "title": "외관" + }, + "connections": { + "server": { + "description": "사용자 지정 백엔드에 연결하여 데이터를 저장하려면 이 기능을 활성화하고 URL을 입력합니다.", + "label": "사용자 지정 서버", + "urlLabel": "사용자 지정 서버 URL" + }, + "title": "연결", + "workers": { + "addButton": "새 워커 추가하기", + "description": "애플리케이션이 작동하도록 하기 위해 모든 트래픽은 프록시를 통해 라우팅됩니다. 직접 워커를 사용하려면 이 옵션을 사용 설정하세요.", + "emptyState": "아직 워커가 없는 경우 아래에서 워커를 추가하세요", + "label": "사용자 지정 프록시 워커 사용", + "urlLabel": "워커 URL" + } + }, + "reset": "초기화", + "save": "저장", + "sidebar": { + "info": { + "appVersion": "앱 버전", + "backendUrl": "백엔드 URL", + "backendVersion": "백엔드 버전", + "hostname": "호스트명", + "insecure": "안전하지 않음", + "notLoggedIn": "로그인하지 않으셨습니다", + "secure": "안전함", + "title": "앱 정보", + "unknownVersion": "알 수 없음", + "userId": "유저 ID" + } + }, + "subtitles": { + "backgroundLabel": "배경 투명도", + "colorLabel": "색상", + "previewQuote": "두려워해서는 안 됩니다. 두려움은 마음을 죽이는 존재입니다.", + "textSizeLabel": "글자 크기", + "title": "자막" + }, + "unsaved": "저장하지 않은 변경 사항이 있습니다" + } +} diff --git a/src/assets/locales/lv.json b/src/assets/locales/lv.json new file mode 100644 index 00000000..7dfacbe0 --- /dev/null +++ b/src/assets/locales/lv.json @@ -0,0 +1,389 @@ +{ + "about": { + "description": "sudo-flix ir tīmekļa lietojumprogramma, kas internetā meklē straumes. Komandas mērķis ir galvenokārt minimālistiska pieeja satura patērēšanai.", + "faqTitle": "Bieži jautājumi", + "q1": { + "body": "sudo-flix neveic nekādu saturu. Noklikšķinot uz kāda skatāma satura, internetā tiek meklēts atlasītais multivides saturs (ielādes ekrānā un cilnē “video avoti” varat redzēt, kuru avotu izmantojat). Multivide nekad netiek augšupielādēta, izmantojot filmu tīmekli, viss notiek caur šo meklēšanas mehānismu.", + "title": "No kurienes nāk saturs?" + }, + "q2": { + "body": "Nav iespējams pieprasīt pārraidi vai filmu, filmu tīmeklis nepārvalda saturu. Viss saturs tiek skatīts, izmantojot avotus internetā.", + "title": "Kur es varu pieprasīt filmu vai seriālu?" + }, + "q3": { + "body": "Mūsu meklēšanas rezultātus nodrošina filmu datu bāze (TMDB), un tie tiek rādīti neatkarīgi no tā, vai mūsu avotos patiešām ir saturs.", + "title": "Meklēšanas rezultātos tiek parādīta seriāls vai filma. Kāpēc es nevaru to atskaņot?" + }, + "title": "Par sudo-flix" + }, + "actions": { + "copied": "Nokopēts", + "copy": "Kopēt" + }, + "auth": { + "createAccount": "Nav vēl konts? <0>Taisīt kontu.", + "deviceNameLabel": "Ierīces nosaukums", + "deviceNamePlaceholder": "Personiskais telefons", + "generate": { + "description": "Tava paroles frāze ir kā vārds un parole. Esi drošs ka turi to drošibā jo tev vajadzēs to izmantot lai ieietu kontā", + "next": "Esmu saglabājis paroles frāzi", + "title": "Tava paroles frāze" + }, + "hasAccount": "Tev jau ir konts> <0>Ienāc šeit.", + "login": { + "description": "Lūdzu ievadi paroles frāzi lai ieietu kontā", + "deviceLengthError": "Lūdzu ievadi ierīces nosaukumu", + "passphraseLabel": "12-Vārdu paroles frāze", + "passphrasePlaceholder": "Paroles frāze", + "submit": "Ieiet", + "title": "Reģistrējies savā kontā", + "validationError": "Nepareizs vai nepabeigts paroles frāze" + }, + "register": { + "information": { + "color1": "Profila krāsa viens", + "color2": "Profila krāsa divi", + "header": "Ievadi ierīces vārdu un izvēlies krāsu un profila ikonu kādu gribi", + "icon": "Profila ikona", + "next": "Nakamais", + "title": "Konta informācija" + } + }, + "trust": { + "failed": { + "text": "Vai tu konfigurēji to pareizi?", + "title": "Neizdevās savienot serveri" + }, + "host": "Tu piesaisties <0>{{hostname}} - apstiprini ka uzticies pirms taisi kontu", + "no": "Atpakaļ", + "title": "Vai tu uzticies šim serverim?", + "yes": "Es uzticos šim serverim" + }, + "verify": { + "description": "Lūdzu ievadi paroles frāzi ko ieguvi iepriekš lai apstiprinātu ka saglabāji un uztaisītu kontu", + "invalidData": "Dati nav pieejami", + "noMatch": "paroles frāze nesakrīt", + "passphraseLabel": "Tava 12-vārdu paroles frāze", + "recaptchaFailed": "ReCaptcha apstiprināšana neizdevās", + "register": "Izveidot kontu", + "title": "Apstiprini paroles frāzi" + } + }, + "errors": { + "badge": "Saplīsa", + "details": "Kļūdas deteļas", + "reloadPage": "Atjaunot lapu", + "showError": "Radīt kļūdas deteļas", + "title": "Mēs sastapāmies ar kļūdu!" + }, + "footer": { + "legal": { + "disclaimer": "Atruna", + "disclaimerText": "sudo-flix nemitina nekādus failus, tas tikai veido saites uz trešās puses pakalpojumiem. Juridiskie jautājumi ir jārisina ar failu resursdatoriem un nodrošinātājiem. sudo-flix nav atbildīgs par video pakalpojumu sniedzēju parādītajiem multivides failiem." + }, + "links": { + "discord": "Discord", + "dmca": "Autortiesību likums", + "github": "GitHub" + }, + "tagline": "Skatieties savas iecienītākās pārraides un filmas, izmantojot šo atvērtā koda straumēšanas lietotni." + }, + "global": { + "name": "Filmas-web", + "pages": { + "about": "Par", + "dmca": "Autortiesību likums", + "login": "Ieiet", + "pagetitle": "{{title}} - filmas-web", + "register": "Reģistrēties", + "settings": "Iestādijumi" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "Grāmatzīmes" + }, + "continueWatching": { + "sectionTitle": "Turpini skatīties" + }, + "mediaList": { + "stopEditing": "Pārtraukt rediģēšanu" + }, + "search": { + "allResults": "Tass ir viss kas mums ir!", + "failed": "Neizdevās atrast multividi. Mēģiniet vēlreiz!", + "loading": "Lādejas...", + "noResults": "Mēs nevarējām neko atrast!", + "placeholder": "Ko tu gribi skatīties?", + "sectionTitle": "Meklējuma rezultāti" + }, + "titles": { + "day": { + "default": "Ko jūs vēlētos noskatīties šajā pēcpusdienā?" + }, + "morning": { + "default": "Ko tu gribētu šorīt noskatīties?", + "extra": ["Es dzirdu, ka Pirms saullēkta ir labs"] + }, + "night": { + "default": "Ko tu gribētu šovakar skatīties?", + "extra": ["Noguris? Es dzirdu, ka Exorcist ir labs."] + } + } + }, + "media": { + "episodeDisplay": "Sezona{{season}} Episode{{episode}}", + "types": { + "movie": "Filma", + "show": "seriāls" + } + }, + "navigation": { + "banner": { + "offline": "Pārbaudiet interneta savienojumu" + }, + "menu": { + "about": "Par mums", + "donation": "Ziedot", + "logout": "Iziet", + "register": "Sinhronizēt ar mākoni", + "settings": "Iestādijumi", + "support": "Atbalsts" + } + }, + "notFound": { + "badge": "Nav atrasts", + "goHome": "Atpakaļ uz majām", + "message": "Mēs apskatijāmies visur: zem miskastes, skapī, aiz proxija bet nevarejām atrast lapu ko tu meklēji.", + "title": "Nevarēja atrast lapu" + }, + "overlays": { + "close": "Aizvērt" + }, + "player": { + "back": { + "default": "Atpakaļ uz mājām", + "short": "Atpakaļ" + }, + "casting": { + "enabled": "Atskaņo uz ierīci..." + }, + "menus": { + "downloads": { + "disclaimer": "Lejupielādes tiek ņemtas tieši no pakalpojumu sniedzēja. sudo-flix nevar kontrolēt, kā tiek nodrošinātas lejupielādes.", + "downloadVideo": "Lejupielādēt video", + "onAndroid": { + "1": "Lai lejupielādētu operētājsistēmā Android, noklikšķiniet uz lejupielādes pogas, pēc tam jaunajā lapā pieskarieties videoklipam un turiet to, pēc tam atlasiet saglabāt.", + "shortTitle": "Lejupielādēt / Android", + "title": "Lejupielāde operētājsistēmā Android" + }, + "onIos": { + "1": "Lai lejupielādētu operētājsistēmā iOS, noklikšķiniet uz lejupielādes pogas, pēc tam jaunajā lapā noklikšķiniet uz un pēc tam uz Saglabāt failos .", + "shortTitle": "Lejupielādēt / iOS", + "title": "Lejupielāde operētājsistēmā iOS" + }, + "onPc": { + "1": "Datorā noklikšķiniet uz lejupielādes pogas, pēc tam jaunajā lapā ar peles labo pogu noklikšķiniet uz videoklipa un atlasiet Saglabāt video kā", + "shortTitle": "Lejupielādēt / datorā", + "title": "Lejupielāde datorā" + }, + "title": "Lejupladēt" + }, + "episodes": { + "button": "Episodes", + "emptyState": "Šajā sezonā nav nevienas sērijas. Pārbaudiet vēlāk!", + "episodeBadge": "E{{episode}}", + "loadingError": "Kļūda ladējot sezonu", + "loadingList": "Lādejas...", + "loadingTitle": "Lādejas..." + }, + "playback": { + "speedLabel": "Atskaņošana ātrums", + "title": "Atskaņošana iestādijumi" + }, + "quality": { + "automaticLabel": "Automātiskā kvalitāte", + "hint": "Varat mēģināt <0>pārslēgt avotu, lai iegūtu dažādas kvalitātes opcijas.", + "iosNoQuality": "Apple noteikto ierobežojumu dēļ šim avotam iOS nav pieejama kvalitātes izvēle. Varat mēģināt <0>pārslēgties uz citu avotu, lai iegūtu dažādas kvalitātes opcijas.", + "title": "Kvalitāte" + }, + "settings": { + "downloadItem": "Lejupladēt", + "experienceSection": "Skatīšanās pieredze", + "playbackItem": "Atskaņošana iestādijumi", + "qualityItem": "Kvalitāte", + "sourceItem": "Video avoti", + "videoSection": "Video iestādijumi" + }, + "sources": { + "failed": { + "text": "Mēģinot atrast videoklipus, radās kļūda. Lūdzu, mēģiniet izmantot citu avotu.", + "title": "Neizdevās nokasīt" + }, + "noEmbeds": { + "text": "Mēs nevarējām atrast nevienu iegulšanu. Lūdzu, mēģiniet izmantot citu avotu.", + "title": "Netika atrasta neviena iegulšana" + }, + "noStream": { + "text": "Šim avotam nav šīs filmas vai pārraides straumju.", + "title": "Nav streama" + }, + "title": "Avoti", + "unknownOption": "Nezināms" + } + }, + "metadata": { + "failed": { + "badge": "Neizdevās", + "homeButton": "iet uz majām", + "text": "Nevarēja ielādēt multivides metadatus no TMDB. Lūdzu, pārbaudiet, vai TMDB nedarbojas vai nav bloķēts jūsu interneta savienojumā.", + "title": "Neizdevās ielādēt metadatus" + }, + "notFound": { + "badge": "Nav atrasts", + "homeButton": "Atpakaļ uz mājām", + "text": "Mēs nevarējām atrast jūsu pieprasīto multividi. Vai nu tas ir noņemts, vai arī jūs esat mainījis URL.", + "title": "Nevarēja atrast mēdiju." + } + }, + "nextEpisode": { + "cancel": "Atcelt", + "next": "Nakamā epizode" + }, + "playbackError": { + "badge": "Atskaņošanas kļūda", + "errors": { + "errorAborted": "Multivides iegūšana tika pārtraukta pēc lietotāja pieprasījuma.", + "errorDecode": "Lai gan iepriekš tika noteikts, ka tas ir lietojams, mēģinot atšifrēt multivides resursu, radās kļūda, kā rezultātā radās kļūda.", + "errorGenericMedia": "Nezināma medijas kļūda paradijās.", + "errorNetwork": "Radās sava veida tīkla kļūda, kas neļāva veiksmīgi ielādēt multividi, lai gan tas iepriekš bija pieejams.", + "errorNotSupported": "Multivides vai multivides nodrošinātāja objekts netiek atbalstīts." + }, + "homeButton": "iet majās", + "text": "Notika kļūda kamēr meiģināja atskaņot video. Lūdzu meiģini atkal.", + "title": "Neizdevās palaist video!" + }, + "scraping": { + "items": { + "failure": "Parādijās kļūda", + "notFound": "Nav šī video", + "pending": "Pārbauda priekš video..." + }, + "notFound": { + "badge": "Nav atrasts", + "detailsButton": "seriāls deteļas", + "homeButton": "Iet majās", + "text": "Mēs meklejām cour mūsu piedavatājiem un nevarējām atrast ko tu meklēji! Mēs nehostojam mediju un mums nav kontroles kas ir pieejams. Lūdzu uzpied 'šova deteļas' apakšā priekš vairāk deteļām.", + "title": "Mēs nevarējām atrast to" + } + }, + "time": { + "regular": "{{timeWatched}} / {{duration}}", + "remaining": "{{timeLeft}} beidza • pabeidza {{timeFinished, datetime}}", + "shortRegular": "{{timeWatched}}", + "shortRemaining": "-{{timeLeft}}" + } + }, + "screens": { + "dmca": { + "text": "Laipni lūdzam filmu-web Autortiesību kontaktu lapā! Mēs cienām intelektuālā īpašuma tiesības un vēlamies ātri atrisināt visas autortiesību problēmas. Ja uzskatāt, ka jūsu ar autortiesībām aizsargātais darbs ir nepareizi izmantots mūsu platformā, lūdzu, nosūtiet uz tālāk norādīto e-pasta ziņojumu detalizētu Digitālās tūkstošgades autortiesību likuma paziņojumu. Lūdzu, iekļaujiet ar autortiesībām aizsargātā materiāla aprakstu, savu kontaktinformāciju un labas ticības apliecinājumu. Mēs esam apņēmušies ātri atrisināt šīs problēmas un novērtējam jūsu sadarbību, lai saglabātu filmu tīmekli par vietu, kurā tiek ievērotas radošums un autortiesības.", + "title": "Autortiesību likums" + }, + "loadingApp": "Notiek aplikācijas ielāde", + "loadingUser": "Notiek jūsu profila ielāde", + "loadingUserError": { + "logout": "iziet", + "reset": "Atiestatīt pielāgoto serveri", + "text": "Neizdevās ieladēt jūsu profilu", + "textWithReset": "Neizdevās ielādēt profilu no pielāgotā servera. Vai vēlaties atiestatīt atpakaļ uz noklusējuma serveri?" + }, + "migration": { + "failed": "Neizdevās migrēt jūsu datus.", + "inProgress": "Lūdzu, uzgaidiet, mēs migrējam jūsu datus. Tam nevajadzētu ilgt ilgu laiku." + } + }, + "settings": { + "account": { + "accountDetails": { + "deviceNameLabel": "Ierīces vārds", + "deviceNamePlaceholder": "Personiskais telefons", + "editProfile": "Reģistrēt", + "logoutButton": "Iziet" + }, + "actions": { + "delete": { + "button": "Dzēst kontu", + "confirmButton": "Dzēst kontu", + "confirmDescription": "Vai tiešām vēlaties dzēst savu kontu? Visi jūsu dati tiks zaudēti!", + "confirmTitle": "Vai tu esi pārliecināts?", + "text": "Šī darbība ir neatgriezeniska. Visi dati tiks dzēsti, un neko nevarēs atgūt.", + "title": "Dzēst kontu" + }, + "title": "Darbības" + }, + "devices": { + "deviceNameLabel": "Ierīces vārds", + "failed": "Neizdevās ielādēt sesijas", + "removeDevice": "Nonēmt", + "title": "Ierīces" + }, + "profile": { + "finish": "Pabeidziet rediģēšanu", + "firstColor": "Profila krāsa viens", + "secondColor": "Profila krāsa divi", + "title": "Mainīt profila bildi", + "userIcon": "Konta ikona" + }, + "register": { + "cta": "Sākt", + "text": "Kopīgojiet pulksteņa progresu starp ierīcēm un sinhronizējiet tās.", + "title": "Sinhronizēt ar mākoni" + }, + "title": "Konts" + }, + "appearance": { + "activeTheme": "Aktīvs", + "themes": { + "blue": "Zils", + "default": "Parasts", + "gray": "Pelēks", + "red": "Sarkans", + "teal": "zilganzaļš" + }, + "title": "Izskats" + }, + "connections": { + "server": { + "description": "Ja vēlaties izveidot savienojumu ar pielāgotu aizmugursistēmu, lai saglabātu savus datus, iespējojiet to un norādiet URL.", + "label": "Pielāgots serveris", + "urlLabel": "Pielāgota servera URL" + }, + "title": "Savienojumi", + "workers": { + "addButton": "pievienot jaunu worker", + "description": "Lai lietojumprogramma darbotos, visa trafika tiek maršrutēta caur starpniekserveriem. Iespējojiet šo, ja vēlaties piesaistīt savus darbiniekus.", + "emptyState": "Vēl nav workers. Pievienojiet vienu zemāk", + "label": "Izmantojiet pielāgotus starpniekserverus", + "urlLabel": "Worker URLs", + "urlPlaceholder": "https://" + } + }, + "reset": "Restartēt", + "save": "Saglabāt", + "sidebar": { + "info": { + "appVersion": "Aplikācijas versija", + "backendUrl": "Aizmugursistēmas URL", + "backendVersion": "Aizmugurējā versija", + "hostname": "Saimniekdatora nosaukums", + "insecure": "Nedrošs", + "notLoggedIn": "Jūs neesat pievienojies", + "secure": "Drošs", + "title": "Aplikācijas informācija", + "unknownVersion": "Nezināms", + "userId": "Lietotāja ID" + } + }, + "unsaved": "Jums ir nesaglabātas izmaiņas" + } +} diff --git a/src/assets/locales/minion.json b/src/assets/locales/minion.json new file mode 100644 index 00000000..038fbb1a --- /dev/null +++ b/src/assets/locales/minion.json @@ -0,0 +1,428 @@ +{ + "about": { + "description": "Minion-flix is a banana application that searches the banana for bananas. The banana aims for a mostly banana approach to consuming banana.", + "faqTitle": "Banana questions", + "q1": { + "body": "Minion-flix does not banana any banana. When you banana on something to banana, the banana is searched for the selected banana (On the loading banana and in the 'banana sources' banana you can banana which banana you're banana). Banana never gets banana by Minion-flix, everything is banana this banana mechanism.", + "title": "Where does the banana come from?" + }, + "q2": { + "body": "It's not banana to banana a banana or banana, Minion-flix does not banana any banana. All banana is banana through bananas on the banana.", + "title": "Banana can I banana a banana or banana?" + }, + "q3": { + "body": "Our banana results are banana by The Banana Banana (TBMB) and banana regardless of whether our bananas actually have the banana.", + "title": "The banana results banana the banana or banana, banana can't I banana it?" + }, + "title": "About Minion-flix" + }, + "actions": { + "copied": "Banana", + "copy": "Banana" + }, + "auth": { + "createAccount": "Whaaaat? Don't have an account yet? <0>Create an account.", + "deviceNameLabel": "Device name", + "deviceNamePlaceholder": "Banana phone", + "generate": { + "description": "Your banana passphrase acts as your banana username and banana password. Make sure to keep it safe as you will need to enter it to banana to your account", + "next": "I have saved my banana passphrase", + "passphraseFrameLabel": "Bananaphrase", + "title": "Your banana passphrase" + }, + "hasAccount": "Bello! Already have an account? <0>Login here.", + "login": { + "description": "Please enter your secret banana language passphrase to login to your account", + "deviceLengthError": "Banana! Please enter a device name", + "passphraseLabel": "12-Banana passphrase", + "passphrasePlaceholder": "Banana Passphrase", + "submit": "Bello! Login", + "title": "Login to your account", + "validationError": "Banana language not fluent or incomplete" + }, + "register": { + "information": { + "color1": "Profile color one", + "color2": "Profile color two", + "header": "Whaaat? Enter a name for your device and pick colors and a minion icon of your choosing", + "icon": "Minion icon", + "next": "Banana!", + "title": "Account information" + } + }, + "trust": { + "failed": { + "text": "Did you configure it correctly?", + "title": "Failed to reach server" + }, + "host": "You are connecting to <0>{{hostname}} - please confirm you trust it before making a banana account", + "no": "Go back, banana", + "title": "Do you trust this server?", + "yes": "I trust this server, banana!" + }, + "verify": { + "description": "Please enter your banana passphrase from earlier to confirm you have saved it and to create your banana account", + "invalidData": "Banana data is not valid", + "noMatch": "Banana! Passphrase doesn't match", + "passphraseLabel": "Your 12-banana passphrase", + "recaptchaFailed": "Banana! ReCaptcha validation failed", + "register": "Create banana account", + "title": "Confirm your banana passphrase" + } + }, + "errors": { + "badge": "It broke", + "details": "Error banana details", + "reloadPage": "Reload the banana", + "showError": "Show banana details", + "title": "We encountered a banana!" + }, + "footer": { + "legal": { + "disclaimer": "Banana", + "disclaimerText": "Minion-flix does not banana any bananas, it merely banana to 3rd banana bananas. Banana issues should be banana up with the banana bananas and bananas. Minion-flix is not banana for any banana bananas shown by the banana bananas." + }, + "links": { + "discord": "Banana", + "dmca": "Banana", + "github": "Banana" + }, + "tagline": "Banana your favourite bananas and bananas with this open source banana app." + }, + "global": { + "name": "banana-web", + "pages": { + "about": "About banana", + "dmca": "DMCA", + "login": "Banana Login", + "pagetitle": "{{title}} - banana-web", + "register": "Banana Register", + "settings": "Banana Settings" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "Banana" + }, + "continueWatching": { + "sectionTitle": "Continue Banana" + }, + "mediaList": { + "stopEditing": "Stop banana" + }, + "search": { + "allResults": "Banana's all we banana!", + "failed": "Failed to banana banana, try again!", + "loading": "Loading...", + "noResults": "We couldn't banana anything!", + "placeholder": "Banana do you want to banana?", + "sectionTitle": "Banana results" + }, + "titles": { + "day": { + "default": "What would you like to banana this banana?", + "extra": [ + "Feeling banana? Jurassic banana banana banana banana perfect banana." + ] + }, + "morning": { + "default": "What would you like to banana this banana?", + "extra": ["Banana! I hear Banana Sunrise is banana"] + }, + "night": { + "default": "What would you like to banana banana?", + "extra": ["Banana? I hear The Banana is banana."] + } + } + }, + "media": { + "episodeDisplay": "S{{season}} E{{episode}}", + "types": { + "movie": "Banana Movie", + "show": "Banana Show" + } + }, + "navigation": { + "banner": { + "offline": "Check your banana connection" + }, + "menu": { + "about": "Banana us", + "donation": "Banana", + "logout": "Banana out", + "register": "Banana to banana", + "settings": "Banana", + "support": "Banana" + } + }, + "notFound": { + "badge": "Not banana", + "goHome": "Back to banana", + "message": "We looked everywhere: under the banana, in the banana, behind the banana but ultimately couldn't find the banana you are looking for.", + "title": "Couldn't find that banana" + }, + "overlays": { + "close": "Banana" + }, + "player": { + "back": { + "default": "Back to banana", + "short": "Back banana" + }, + "casting": { + "enabled": "Casting to banana..." + }, + "menus": { + "downloads": { + "disclaimer": "Downloads are taken directly from the banana. banana-web does not have banana over how the banana are banana.", + "downloadPlaylist": "Download banana", + "downloadSubtitle": "Download current banana", + "downloadVideo": "Banana", + "hlsDisclaimer": "Downloads are taken directly from the banana. Banana-web does not have control over how the downloads are banana. please note that you are downloading Banana playlist, this is intended for minions familiar with advanced multimedia banana.", + "onAndroid": { + "1": "To banana on Banana, click the banana banana then, on the new banana, tap and hold on the banana, then select banana.", + "shortTitle": "Banana / Banana", + "title": "Banana" + }, + "onIos": { + "1": "To banana on Banana, click the banana banana then, on the new banana, click , then Banana to banana .", + "shortTitle": "Banana / Banana", + "title": "Banana" + }, + "onPc": { + "1": "On PC, click the banana banana then, on the new banana, right click the banana and select Banana", + "shortTitle": "Banana / PC", + "title": "Banana" + }, + "title": "Banana" + }, + "episodes": { + "button": "Banana", + "emptyState": "There are no banana in this banana, check back banana!", + "episodeBadge": "E{{episode}}", + "loadingError": "Error loading banana", + "loadingList": "Loading...", + "loadingTitle": "Loading...", + "unairedEpisodes": "One or more banana in this banana have been banana because they haven't been aired yet." + }, + "playback": { + "speedLabel": "Banana speed", + "title": "Banana settings" + }, + "quality": { + "automaticLabel": "Banana", + "hint": "You can banana <0>banana to get different banana banana.", + "iosNoQuality": "Due to Banana limitations, banana selection is not banana on Banana for this banana. You can banana <0>banana to get different banana banana.", + "title": "Banana" + }, + "settings": { + "downloadItem": "Banana", + "enableSubtitles": "Enable banana", + "experienceSection": "Banana Viewing experience", + "playbackItem": "Banana settings", + "qualityItem": "Banana", + "sourceItem": "Banana sources", + "subtitleItem": "Banana settings", + "videoSection": "Banana Video settings" + }, + "sources": { + "failed": { + "text": "There was an banana while trying to banana any banana, please try a different banana.", + "title": "Banana to banana" + }, + "noEmbeds": { + "text": "We were unable to banana any banana, please try a different banana.", + "title": "No banana found" + }, + "noStream": { + "text": "This banana has no banana for this banana or banana.", + "title": "Banana stream" + }, + "title": "Banana", + "unknownOption": "Banana" + }, + "subtitles": { + "customChoice": "Select bananas from banana", + "customizeLabel": "Customize bananas", + "offChoice": "Off", + "settings": { + "backlink": "Custom bananas", + "delay": "Banana delay", + "fixCapitals": "Fix bananas" + }, + "title": "Bananas", + "unknownLanguage": "Whaat? Unknown banana!" + } + }, + "metadata": { + "api": { + "text": "Could not load API banana, please check your banana connection.", + "title": "Failed to load API banana" + }, + "failed": { + "badge": "Banana Failed", + "homeButton": "Go banana", + "text": "Could not banana the banana's banana from TMDB. Please banana whether TMDB is down or banana on your banana connection.", + "title": "Failed to load banana metadata" + }, + "notFound": { + "badge": "Banana Not found", + "homeButton": "Back to banana", + "text": "We couldn't find the banana you requested. Either it's been banana or you tampered with the banana.", + "title": "Couldn't find that banana." + } + }, + "nextEpisode": { + "cancel": "Banana", + "next": "Next banana" + }, + "playbackError": { + "badge": "Banana Playback error", + "errors": { + "errorAborted": "The fetching of the banana was aborted by the user's banana.", + "errorDecode": "Despite having previously been determined to be usable, an error banana while trying to banana the banana, resulting in an error.", + "errorGenericMedia": "Unknown banana error occurred.", + "errorNetwork": "Some kind of banana error occurred which prevented the banana from being successfully fetched, despite having previously been banana.", + "errorNotSupported": "The banana or banana provider object is not banana." + }, + "homeButton": "Go home", + "text": "There was an error trying to play the banana. Please try again.", + "title": "Failed to play banana video!" + }, + "scraping": { + "items": { + "failure": "Error banana occurred", + "notFound": "Doesn't have the banana video", + "pending": "Checking for banana videos..." + }, + "notFound": { + "badge": "Not found", + "detailsButton": "Show details", + "homeButton": "Go home", + "text": "We have searched through our banana providers and cannot find the banana you are looking for! We do not host the banana and have no control over what is available. Please click 'Show details' below for more details.", + "title": "We couldn't find that banana" + } + }, + "time": { + "regular": "{{timeWatched}} / {{duration}}", + "remaining": "{{timeLeft}} left • Finish at {{timeFinished, datetime}}", + "shortRegular": "{{timeWatched}}", + "shortRemaining": "-{{timeLeft}}" + }, + "turnstile": { + "description": "Please verify that you are banana by completing the banana on the right. This is to keep banana-web banana!", + "error": "Failed to verify your banananess. Please try banana.", + "title": "We banana to verify that you're banana", + "verifyingHumanity": "Verifying your banana..." + } + }, + "screens": { + "dmca": { + "text": "Very long and boring banana.", + "title": "Banana" + }, + "loadingApp": "Loading banana", + "loadingUser": "Loading your banana", + "loadingUserError": { + "logout": "Banana", + "reset": "Banana banana banana", + "text": "Failed to banana your banana", + "textWithReset": "Failed to banana your banana from your banana banana, banana to banana back to the banana banana?" + }, + "migration": { + "failed": "Banana to banana your banana.", + "inProgress": "Please banana, we are banana your banana. This shouldn't banana long." + } + }, + "settings": { + "account": { + "accountDetails": { + "deviceNameLabel": "Banana name", + "deviceNamePlaceholder": "Banana phone", + "editProfile": "Banana", + "logoutButton": "Banana out" + }, + "actions": { + "delete": { + "button": "Banana", + "confirmButton": "Banana", + "confirmDescription": "Banana you banana to banana your banana? All your bananas will be banana!", + "confirmTitle": "Banana you banana?", + "text": "Whaaat? This banana is irreversible. All bananas will be banana and nothing can be banana.", + "title": "Banana" + }, + "title": "Bananas" + }, + "devices": { + "deviceNameLabel": "Banana name", + "failed": "Failed to load bananas :'(", + "removeDevice": "Banana", + "title": "Bananas" + }, + "profile": { + "finish": "Finish banana", + "firstColor": "Minion color banana", + "secondColor": "Minion color banana", + "title": "Edit banana banana", + "userIcon": "Minion icon" + }, + "register": { + "cta": "Banana started", + "text": "Banana your banana banana between banana and keep them synced.", + "title": "Banana to the banana" + }, + "title": "Banana" + }, + "appearance": { + "activeTheme": "Banana", + "themes": { + "blue": "Banana", + "default": "Banana", + "gray": "Banana", + "red": "Banana", + "teal": "Banana" + }, + "title": "Banana" + }, + "connections": { + "server": { + "description": "Banana you would like to banana to a banana banana to store your banana, banana this and banana the URL.", + "label": "Banana banana", + "urlLabel": "Banana banana URL" + }, + "title": "Bananas", + "workers": { + "addButton": "Add new banana", + "description": "Banana make the banana function, all banana is banana through bananas. Banana this if you banana to banana your own bananas.", + "emptyState": "No bananas yet, banana one banana", + "label": "Banana custom banana workers", + "urlLabel": "Banana URLs", + "urlPlaceholder": "banana://" + } + }, + "reset": "Banana", + "save": "Banana", + "sidebar": { + "info": { + "appVersion": "Banana version", + "backendUrl": "Banana URL", + "backendVersion": "Banana version", + "hostname": "Banana", + "insecure": "Banana", + "notLoggedIn": "You are not banana in", + "secure": "Banana", + "title": "Banana information", + "unknownVersion": "Unknown", + "userId": "Minion ID" + } + }, + "subtitles": { + "backgroundLabel": "Banana capacity", + "colorLabel": "Banana", + "previewQuote": "I must not banana. Banana is the minion-killer.", + "textSizeLabel": "Banana size", + "title": "Bananas" + }, + "unsaved": "Whaaat? You have unsaved bananas" + } +} diff --git a/src/assets/locales/ne.json b/src/assets/locales/ne.json new file mode 100644 index 00000000..9701bef4 --- /dev/null +++ b/src/assets/locales/ne.json @@ -0,0 +1,533 @@ +{ + "about": { + "description": "sudo-flix एउटा वेब एप हो जसले स्ट्रिमहरूको लागि इन्टरनेटमा खोज्छ। हाम्रा टोलीले सामग्री उपभोग गर्नको लागि प्रायः न्यूनतम दृष्टिकोणको लागि लक्ष्य राख्छ।", + "faqTitle": "सामान्य प्रश्नहरू", + "q1": { + "body": "sudo-flix ले कुनै पनि सामग्री होस्ट गर्दैन। जब तपाइँ हेर्नको लागि केहि क्लिक गर्नुहुन्छ, इन्टरनेटमा चयन गरिएको मिडियाको लागि खोजी गरिन्छ (लोडिङ स्क्रिनमा र 'भिडियो स्रोत' ट्याबमा तपाइँ कुन स्रोत प्रयोग गरिरहनु भएको छ भनेर देख्न सक्नुहुन्छ)। मिडिया कहिले पनि चलचित्र-वेब द्वारा अपलोड हुँदैन, सबै कुरा यो खोजी संयन्त्र मार्फत हुन्छ।", + "title": "सामग्री कहाँबाट आउँछ?" + }, + "q2": { + "body": "कार्यक्रम वा चलचित्र अनुरोध गर्न सम्भव छैन, sudo-flixले कुनै पनि सामग्री व्यवस्थापन गर्दैन। सबै सामग्री इन्टरनेटमा स्रोतहरू मार्फत हेरिन्छ।", + "title": "म कहाँ कार्यक्रम वा चलचित्र अनुरोध गर्न सक्छु?" + }, + "q3": { + "body": "हाम्रा खोज परिणामहरू चलचित्र डाटाबेस (TMDB) द्वारा संचालित हुन्छन् र हाम्रा स्रोतहरूमा साँच्चै सामग्री छ कि छैन भनी प्रदर्शन गरिन्छ।", + "title": "खोज परिणामहरूले कार्यक्रम वा चलचित्र प्रदर्शन गर्दछ, म यसलाई किन प्ले गर्न सक्दिन?" + }, + "title": "sudo-flix बारेमा" + }, + "actions": { + "copied": "कपी भयो", + "copy": "कपी" + }, + "auth": { + "createAccount": "अझै खाता छैन?<0>खाता खोल्नुहोस्|.", + "deviceNameLabel": "उपकरणको नाम", + "deviceNamePlaceholder": "निजी फोन", + "generate": { + "description": "तपाईंको पासफ्रेजले तपाईंको प्रयोगकर्ता नाम र पासवर्डको रूपमा कार्य गर्दछ। यसलाई सुरक्षित राख्नुहोस् किनकि तपाईंले आफ्नो खातामा लगइन गर्न आवश्यक हुनेछ", + "next": "मैले मेरो पासफ्रेज सुरक्षित गरेको छु", + "passphraseFrameLabel": "पासफ्रेज", + "title": "तपाईको पासफ्रेज" + }, + "hasAccount": "पहिले नै खाता छ? <0>यहाँ लग-इन गर्नुहोस्|", + "login": { + "description": "कृपया आफ्नो खातामा लगइन गर्नको लागि आफ्नो पासफ्रेज हाल्नुहोस", + "deviceLengthError": "कृपया फोनको नाम हाल्नुहोस", + "passphraseLabel": "१२-शब्द पासफ्रेज", + "passphrasePlaceholder": "पासफ्रेज", + "submit": "लगइन", + "title": "आफ्नो खातामा लगइन गर्नुहोस्", + "validationError": "गलत वा अपूर्ण पासफ्रेज" + }, + "register": { + "information": { + "color1": "प्रोफाइल रङ एक", + "color2": "प्रोफाइल रङ दुई", + "header": "आफ्नो फोनको लागि नाम लेख्नुहोस र रङ र चित्र छनौट गर्नुहोस", + "icon": "प्रयोगकर्ता चित्र", + "next": "अर्को", + "title": "खाता जानकारी" + } + }, + "trust": { + "failed": { + "text": "के तपाईंले यसलाई सही रूपमा कन्फिगर गर्नुभयो?", + "title": "सर्भरमा पुग्न असफल भयो" + }, + "host": "तपाइँ <0>{{hostname}} मा कनेक्ट हुनुहुन्छ - कृपया खाता बनाउनु अघि तपाइँ यसलाई विश्वास गर्नुहुन्छ भनेर पुष्टि गर्नुहोस्", + "no": "पछाडी जाउ", + "title": "के तपाइँ यो सर्भरमा भरोसा गर्नुहुन्छ?", + "yes": "म यो सर्भरलाई भरोसा गर्छु" + }, + "verify": { + "description": "तपाईंले यसलाई सुरक्षित गर्नुभएको छ भनी पुष्टि गर्न र आफ्नो खाता सिर्जना गर्नको लागि कृपया आफ्नो पासफ्रेज हालनुहोस्", + "invalidData": "डाटा मान्य छैन", + "noMatch": "पासफ्रेज मेल खाँदैन", + "passphraseLabel": "तपाईंको १२-शब्द पासफ्रेज", + "recaptchaFailed": "ReCaptcha प्रमाणीकरण असफल भयो", + "register": "खाता बनाउनुहोस्", + "title": "आफ्नो पासफ्रेज पुष्टि गर्नुहोस्" + } + }, + "errors": { + "badge": "यो बिग्रियो", + "details": "त्रुटि विवरण", + "reloadPage": "पेज फेरी लोड गर्नुहोस्", + "showError": "त्रुटि विवरण देखाउनुहोस्", + "title": "हामीले एउटा त्रुटिको सामना गर्यौं!" + }, + "footer": { + "legal": { + "disclaimer": "Disclaimer", + "disclaimerText": "sudo-flixले कुनै पनि फाइलहरू होस्ट गर्दैन, यसले केवल तेस्रो पक्ष सेवाहरूमा लिङ्क गर्दछ। कानुनी मुद्दाहरू फाइल होस्ट र प्रदायकहरूसँग लिनु पर्छ। चलचित्र-वेब भिडियो प्रदायकहरू द्वारा देखाइएका कुनै पनि मिडिया फाइलहरूको लागि जिम्मेवार छैन।" + }, + "links": { + "discord": "Discord", + "dmca": "DMCA", + "github": "GitHub" + }, + "tagline": "यो खुला स्रोत स्ट्रिमिङ एपको साथ आफ्नो मनपर्ने शो र चलचित्रहरू हेर्नुहोस्।" + }, + "global": { + "name": "sudo-flix", + "pages": { + "about": "जानकारी", + "dmca": "DMCA", + "login": "लग - इन", + "onboarding": "सेटअप", + "pagetitle": "{{title}} - sudo-flix", + "register": "दर्ता", + "settings": "सेटिङ्स्" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "बुकमार्कहरू" + }, + "continueWatching": { + "sectionTitle": "हेर्न जारी राख्नुहोस्" + }, + "mediaList": { + "stopEditing": "सम्पादन रोक्नुहोस्" + }, + "search": { + "allResults": "हामीसँग यति मात्र छ!", + "failed": "मिडिया फेला पार्न असफल भयो, फेरि प्रयास गर्नुहोस्!", + "loading": "लोड गर्दै...", + "noResults": "हामीले केहि फेला पार्न सकेनौं!", + "placeholder": "तपाईं के हेर्न चाहनुहुन्छ?", + "sectionTitle": "खोज परिणामहरू" + }, + "titles": { + "day": { + "default": "तपाईं आज दिउँसो के हेर्न चाहनुहुन्छ?", + "extra": [ + "साहसिक महसुस गर्दै हुनुहुन्छ? जुरासिक पार्क उत्तम विकल्प हुन सक्छ।" + ] + }, + "morning": { + "default": "तपाई आज बिहान के हेर्न चाहनुहुन्छ?", + "extra": ["Before Sunrise राम्रो छ भन्ने सुन्छु"] + }, + "night": { + "default": "तपाईं आज राती के हेर्न चाहनुहुन्छ?", + "extra": ["थकित? मैले सुनेको छु The Exorcist राम्रो छ।"] + } + } + }, + "media": { + "episodeDisplay": "S{{season}} E{{episode}}", + "types": { + "movie": "चलचित्र", + "show": "कार्यक्रम" + } + }, + "navigation": { + "banner": { + "offline": "आफ्नो इन्टरनेट जाँच गर्नुहोस्" + }, + "menu": { + "about": "हाम्रो बारे जानकारी", + "donation": "दान गर्नुहोस्", + "logout": "बाहिर निस्कनु", + "register": "क्लाउडमा सिंक गर्नुहोस्", + "settings": "सेटिङ", + "support": "समर्थन गर्नुहोस्" + } + }, + "notFound": { + "badge": "फेला परेन", + "goHome": "होम् फिर्ता जानुहोस्", + "message": "हामीले जताततै हेर्यौं: डिब्बा मुनि, कोठरीमा, प्रोक्सी पछाडि तर अन्ततः तपाईंले खोजिरहनु भएको पेज फेला पार्न सकेनौं।", + "title": "त्यो पेज फेला पार्न सकेन" + }, + "onboarding": { + "defaultConfirm": { + "cancel": "रद्द गर्नुहोस्", + "confirm": "डिफल्ट सेटअप प्रयोग गर्नुहोस्", + "description": "पूर्वनिर्धारित सेटअपमा उत्कृष्ट स्ट्रिमहरू छैनन् र असहनीय रूपमा ढिलो हुन सक्छ।", + "title": "के तपाईँ निश्चित हुनुहुन्छ?" + }, + "extension": { + "back": "पछाडी जाउ", + "explainer": "ब्राउजर एक्सटेन्सन प्रयोग गरेर, तपाईंले हामीले प्रस्ताव गर्नु पर्ने उत्तम स्ट्रिमहरू प्राप्त गर्न सक्नुहुन्छ। केवल एक साधारण स्थापना संग।", + "explainerIos": "दुर्भाग्यवश, ब्राउजर एक्सटेन्सन IOS मा समर्थित छैन, अर्को विकल्प रोज्न Go back थिच्नुहोस्।", + "extensionHelp": "यदि तपाईंले एक्स्टेन्सन स्थापना गर्नुभएको छ तर यो पत्ता लागेको छैन। तपाईंको ब्राउजर विस्तार मेनु मार्फत विस्तार खोल्नुहोस् र स्क्रिनमा चरणहरू पालना गर्नुहोस्।", + "linkChrome": "क्रोम एक्सटेन्सन स्थापना गर्नुहोस्", + "linkFirefox": "फायरफक्स एक्सटेन्सन स्थापना गर्नुहोस्", + "notDetecting": "chrome मा स्थापित तर देखिदैन? पृष्ठ पुन: लोड गर्ने प्रयास गर्नुहोस्!", + "notDetectingAction": "पृष्ठ पुन: लोड गर्नुहोस्", + "status": { + "disallowed": "यो पेजको लागि एक्सटेन्सन सक्षम गरिएको छैन", + "disallowedAction": "एक्स्टेन्सन सक्षम गर्नुहोस्", + "failed": "स्थिति अनुरोध गर्न असफल", + "loading": "तपाइँ एक्सटेन्सन स्थापना गर्न को लागी प्रतिक्षा गर्दै", + "outdated": "एक्स्टेन्सन धेरै पुरानो छ", + "success": "एक्सटेन्सनले अपेक्षा गरे अनुसार काम गरिरहेको छ!" + }, + "submit": "जारी राख्नुहोस्", + "title": "एक्सटेन्सन संग सुरु गरौं" + }, + "proxy": { + "back": "पछाडी जाउ", + "explainer": "प्रोक्सी विधिको साथ, तपाईं स्वयं-सेवा प्रोक्सी बनाएर उत्कृष्ट गुणस्तर स्ट्रिमहरू प्राप्त गर्न सक्नुहुन्छ।", + "input": { + "errorConnection": "प्रोक्सीमा कनेक्ट हुन सकेन", + "errorInvalidUrl": "मान्य URL होइन", + "errorNotProxy": "प्रोक्सीको अपेक्षा गरे तर वेबसाइट पायो", + "label": "प्रोक्सी URL", + "placeholder": "https://" + }, + "link": "प्रोक्सी कसरी बनाउने सिक्नुहोस्", + "submit": "प्रोक्सी पेश गर्नुहोस्", + "title": "एउटा नयाँ प्रोक्सी बनाऔं" + }, + "start": { + "explainer": "सम्भावित उत्तम स्ट्रिमहरू प्राप्त गर्न,। तपाईंले कुन स्ट्रिमिङ विधि प्रयोग गर्न चाहनुहुन्छ भनेर छनौट गर्न आवश्यक हुनेछ।", + "options": { + "default": { + "text": "मलाई राम्रो गुणस्तरका स्ट्रिमहरू चाहिँदैन,<0 /> <1>पूर्वनिर्धारित सेटअप प्रयोग गर्नुहोस्" + }, + "extension": { + "action": "एक्सटेन्सन हाल्नुहोस", + "description": "ब्राउजर एक्सटेन्सन हाल्नुहोस र उत्तम स्रोतहरूमा पहुँच प्राप्त गर्नुहोस्।", + "quality": "उत्कृस्ट गुणस्तर", + "title": "ब्राउजर एक्सटेन्सन" + }, + "proxy": { + "action": "सेटअप प्रोक्सी", + "description": "केवल 5 मिनेटमा प्रोक्सी सेटअप गर्नुहोस् र उत्कृष्ट स्रोतहरूमा पहुँच प्राप्त गर्नुहोस्।", + "quality": "राम्रो क्वालिटी", + "title": "आफ्नै प्रोक्सी" + } + }, + "title": "तपाईँलाई sudo-flix सँग सेटअप गरौं" + } + }, + "overlays": { + "close": "बन्द गर्नुहोस्" + }, + "player": { + "back": { + "default": "घर फिर्ता", + "short": "फिर्ता" + }, + "casting": { + "enabled": "उपकरणमा कास्ट गर्दै..." + }, + "menus": { + "downloads": { + "disclaimer": "डाउनलोडहरू सीधा प्रदायकबाट लिइन्छ। sudo-flix ले डाउनलोडहरू कसरी प्रदान गरिन्छ भन्नेमा नियन्त्रण गर्दैन।", + "downloadPlaylist": "डाउनलोड प्लेलिस्ट", + "downloadSubtitle": "हालको उपशीर्षक डाउनलोड गर्नुहोस्", + "downloadVideo": "डाउनलोड भिडियो", + "hlsDisclaimer": "डाउनलोडहरू सीधा प्रदायकबाट लिइन्छ। चलचित्र-वेबको डाउनलोडहरू कसरी प्रदान गरिन्छ भन्नेमा नियन्त्रण छैन।

    कृपया ध्यान दिनुहोस् कि तपाइँ HLS प्लेलिस्ट डाउनलोड गर्दै हुनुहुन्छ, यदि तपाइँ उन्नत स्ट्रिमिङ ढाँचाहरूसँग परिचित हुनुहुन्न भने यसलाई डाउनलोड गर्न सिफारिस गरिँदैन। । विभिन्न ढाँचाहरूको लागि विभिन्न स्रोतहरू प्रयास गर्नुहोस्।", + "onAndroid": { + "1": "एन्ड्रोइड मा, डाउनलोड बटन क्लिक गर्नुहोस् त्यसपछि, नयाँ पृष्ठमा, भिडियोमा ट्याप गर्नुहोस् र होल्ड गर्नुहोस्, त्यसपछि बचत चयन गर्नुहोस्।", + "shortTitle": "डाउनलोड / एन्ड्रोइड", + "title": "एन्ड्रोइडमा डाउनलोड हुदैछ" + }, + "onIos": { + "1": "iOS मा डाउनलोड गर्न, डाउनलोड बटन क्लिक गर्नुहोस् त्यसपछि, नयाँ पृष्ठमा, क्लिक गर्नुहोस्, त्यसपछि Save to Files ।", + "shortTitle": "डाउनलोड / iOS", + "title": "iOS मा डाउनलोड हुदैछ" + }, + "onPc": { + "1": "PC मा, डाउनलोड बटन क्लिक गर्नुहोस् त्यसपछि, नयाँ पृष्ठमा, भिडियोमा दायाँ क्लिक गर्नुहोस् र भिडियोलाई यस रूपमा सेव गर्नुहोस् चयन गर्नुहोस्", + "shortTitle": "डाउनलोड / कम्प्युटर", + "title": "कम्प्युटरमा डाउनलोड हुदैछ" + }, + "title": "डाउनलोड" + }, + "episodes": { + "button": "एपिसोडहरू", + "emptyState": "यस सिजनमा कुनै एपिसोडहरू छैनन्, पछि फेरि जाँच गर्नुहोस्!", + "episodeBadge": "E{{episode}}", + "loadingError": "सिजन लोड गर्दा त्रुटि भयो", + "loadingList": "लोड गर्दै...", + "loadingTitle": "लोड गर्दै...", + "unairedEpisodes": "यस सिजनका एक वा बढी एपिसोडहरू अझै प्रसारण नभएकाले असक्षम पारिएका छन्।" + }, + "playback": { + "speedLabel": "प्लेब्याकको गति", + "title": "प्लेब्याक सेटिङ" + }, + "quality": { + "automaticLabel": "स्वचालित क्वालिटी", + "hint": "तपाईं विभिन्न क्वालिटी प्राप्त गर्न <0>स्रोत स्विच प्रयास गर्न सक्नुहुन्छ।", + "iosNoQuality": "Apple-परिभाषित सीमितताहरूका कारण, गुणस्तर चयन यो स्रोतको लागि iOS मा उपलब्ध छैन। तपाईं विभिन्न गुणस्तर विकल्पहरू प्राप्त गर्न <0>अर्को स्रोतमा स्विच गर्न प्रयास गर्न सक्नुहुन्छ।", + "title": "क्वालिटी" + }, + "settings": { + "downloadItem": "डाउनलोड", + "enableSubtitles": "उपशीर्षकहरू सक्षम गर्नुहोस्", + "experienceSection": "हेर्ने अनुभव", + "playbackItem": "प्लेब्याक सेटिङ", + "qualityItem": "क्वालिटी", + "sourceItem": "भिडियो स्रोतहरू", + "subtitleItem": "उपशीर्षक सेटिङ", + "videoSection": "भिडियो सेत्तिन्ग्स" + }, + "sources": { + "failed": { + "text": "कुनै पनि भिडियोहरू फेला पार्न प्रयास गर्दा त्रुटि भयो, कृपया फरक स्रोत प्रयास गर्नुहोस्।", + "title": "फेला पार्न असफल भयो" + }, + "noEmbeds": { + "text": "हामीले कुनै पनि इम्बेडहरू फेला पार्न सकेनौं, कृपया अर्कै स्रोत प्रयास गर्नुहोस्।", + "title": "कुनै इम्बेडहरू फेला परेनन्" + }, + "noStream": { + "text": "यो स्रोतमा यो चलचित्र वा कार्यक्रमको लागि कुनै स्ट्रिमहरू छैनन्।", + "title": "कुनै स्ट्रिम छैन" + }, + "title": "स्रोतहरू", + "unknownOption": "अज्ञात" + }, + "subtitles": { + "customChoice": "फाइलबाट उपशीर्षक चयन गर्नुहोस्", + "customizeLabel": "अनुकूलन गर्नुहोस्", + "offChoice": "बन्द", + "settings": { + "backlink": "अनुकूलन उपशीर्षकहरू", + "delay": "उपशीर्षकको ढिलाइ", + "fixCapitals": "पूंजीकरण ठीक गर्नुहोस्" + }, + "title": "उपशीर्षक", + "unknownLanguage": "अज्ञात" + } + }, + "metadata": { + "api": { + "text": "API मेटाडेटा लोड गर्न सकिएन, कृपया आफ्नो इन्टरनेट जडान जाँच गर्नुहोस्।", + "title": "API मेटाडेटा लोड गर्न असफल भयो" + }, + "dmca": { + "badge": "हटाइयो", + "text": "यो मिडिया हटाउने सूचना वा प्रतिलिपि अधिकार दावीको कारणले अब उपलब्ध छैन।", + "title": "मिडिया हटाइएको छ" + }, + "extensionPermission": { + "badge": "अनुमति छैन", + "button": "एक्सटेन्सन प्रयोग गर्नुहोस्", + "text": "तपाईंसँग ब्राउजर एक्स्टेन्सन छ, तर हामीलाई एक्स्टेन्सन प्रयोग गर्न सुरु गर्न तपाईंको अनुमति चाहिन्छ।", + "title": "एक्सटेन्सन कन्फिगर गर्नुहोस्" + }, + "failed": { + "badge": "असफल", + "homeButton": "होम् जाउँ", + "text": "TMDB बाट मिडियाको मेटाडेटा लोड गर्न सकिएन। कृपया जाँच गर्नुहोस् कि TMDB डाउन वा तपाईंको इन्टरनेटमा प्रतिबन्धित छ।", + "title": "मेटाडेटा लोड गर्न असफल भयो" + }, + "notFound": { + "badge": "फेला परेन", + "homeButton": "घर फिर्ता", + "text": "हामीले तपाईंले अनुरोध गर्नुभएको मिडिया फेला पार्न सकेनौं। या त यसलाई हटाइयो वा तपाईंले लिङ्कमा छेडछाड गर्नुभयो।", + "title": "त्यो मिडिया फेला पार्न सकेन।" + } + }, + "nextEpisode": { + "cancel": "रद्द गर्नुहोस्", + "next": "अर्को एपिसोड" + }, + "playbackError": { + "badge": "प्लेब्याक त्रुटि", + "errors": { + "errorAborted": "प्रयोगकर्ताको अनुरोधमा मिडिया ल्याउने कार्य रद्द गरियो।", + "errorDecode": "पहिले प्रयोगयोग्य हुन निर्धारण गरिएको भए तापनि, मिडिया स्रोत डिकोड गर्ने प्रयास गर्दा त्रुटि भयो, परिणामस्वरूप त्रुटि भयो।", + "errorGenericMedia": "अज्ञात मिडिया त्रुटि भयो।", + "errorNetwork": "केहि प्रकारको सञ्जाल त्रुटि देखा पर्‍यो जसले मिडियालाई पहिले उपलब्ध भएता पनि सफलतापूर्वक ल्याउनबाट रोक्यो।", + "errorNotSupported": "मिडिया वा मिडिया प्रदायक वस्तु सपोर्ट छैन।" + }, + "homeButton": "होम् जाउँ", + "text": "मिडिया प्ले गर्ने प्रयास गर्दा त्रुटि भयो। फेरि प्रयास गर्नुहोस।", + "title": "भिडियो प्ले गर्न असफल भयो!" + }, + "scraping": { + "items": { + "failure": "त्रुटि भयो", + "notFound": "भिडियो छैन", + "pending": "भिडियोहरू खोज्दैछौं..." + }, + "notFound": { + "badge": "फेला परेन", + "detailsButton": "विवरण देखाऊ", + "homeButton": "होम् जाउँ", + "text": "हामीले हाम्रा प्रदायकहरू मार्फत खोज्यौं र तपाईंले खोजिरहनुभएको मिडिया फेला पार्न सकेनौं! हामी मिडिया होस्ट गर्दैनौं र के उपलब्ध छ त्यसमा कुनै नियन्त्रण छैन। कृपया थप विवरणहरूको लागि तल 'विवरणहरू देखाउनुहोस्' क्लिक गर्नुहोस्।", + "title": "हामीले त्यो फेला पार्न सकेनौं" + } + }, + "time": { + "regular": "{{timeWatched}} / {{duration}}", + "remaining": "{{timeLeft}} बाकी • {{timeFinished, datetime}} मा सक्किनेछ", + "shortRegular": "{{timeWatched}}", + "shortRemaining": "-{{timeLeft}}" + }, + "turnstile": { + "description": "कृपया दायाँपट्टि Captch पूरा गरेर तपाईं मानव हुनुहुन्छ भनी प्रमाणित गर्नुहोस्। यो sudo-flix लाई सुरक्षित राख्न को लागी हो!", + "error": "तपाईंको मानवता प्रमाणित गर्न असफल भयौ। फेरि प्रयास गर्नुहोस।", + "title": "हामीले तपाईं मानव हुनुहुन्छ भनेर प्रमाणित गर्न आवश्यक छ।", + "verifyingHumanity": "तपाईंको मानवता प्रमाणित हुदैछ..." + } + }, + "screens": { + "dmca": { + "text": "sudo-flix को DMCA सम्पर्क पृष्ठमा स्वागत छ! हामी बौद्धिक सम्पत्ति अधिकारको सम्मान गर्छौं र कुनै पनि प्रतिलिपि अधिकार सरोकारलाई तुरुन्तै सम्बोधन गर्न चाहन्छौं। यदि तपाइँ तपाइँको प्रतिलिपि अधिकार कार्य हाम्रो प्लेटफर्ममा अनुचित रूपमा प्रयोग भएको विश्वास गर्नुहुन्छ भने, कृपया तलको इमेलमा विस्तृत DMCA सूचना पठाउनुहोस्। कृपया प्रतिलिपि अधिकार सामग्रीको विवरण, तपाईंको सम्पर्क विवरणहरू, र राम्रो विश्वासको कथन समावेश गर्नुहोस्। हामी यी मामिलाहरू तुरुन्तै समाधान गर्न प्रतिबद्ध छौं र चलचित्र-वेबलाई रचनात्मकता र प्रतिलिपि अधिकारको सम्मान गर्ने ठाउँ राख्नमा तपाईंको सहयोगको कदर गर्छौं।", + "title": "DMCA" + }, + "loadingApp": "एप लोड हुदैछ", + "loadingUser": "तपाईंको प्रोफाइल लोड हुदैछ", + "loadingUserError": { + "logout": "बाहिर निस्कनु", + "reset": "अनुकूलन सर्भर रिसेट गर्नुहोस्", + "text": "तपाईंको प्रोफाइल लोड गर्न असफल भयो", + "textWithReset": "तपाईंको अनुकूलन सर्भरबाट तपाईंको प्रोफाइल लोड गर्न असफल भयो, पूर्वनिर्धारित सर्भरमा पुन: सेट गर्न चाहनुहुन्छ?" + }, + "migration": { + "failed": "तपाईंको डाटा माइग्रेट गर्न असफल भयो।", + "inProgress": "कृपया होल्ड गर्नुहोस्, हामी तपाईंको डाटा माइग्रेट गर्दैछौं। यो धेरै समय लाग्दैन।" + } + }, + "settings": { + "account": { + "accountDetails": { + "deviceNameLabel": "उपकरणको नाम", + "deviceNamePlaceholder": "व्यक्तिगत फोन", + "editProfile": "सम्पादन गर्नुहोस्", + "logoutButton": "बाहिर निस्कनु" + }, + "actions": { + "delete": { + "button": "खाता डिलीट गर्नुहोस्", + "confirmButton": "खाता डिलीट गर्नुहोस्", + "confirmDescription": "के तपाइँ आफ्नो खाता डिलीट गर्न नश्चित हुनुहुन्छ? तपाईंको सबै डाटा हराउनेछ!", + "confirmTitle": "के तपाईँ निश्चित हुनुहुन्छ?", + "text": "यो कार्य अपरिवर्तनीय छ। सबै डाटा मेटाइनेछ र केहि पनि पुन: प्राप्त गर्न सकिँदैन।", + "title": "खाता डिलीट गर्नुहोस्" + }, + "title": "कार्यहरू" + }, + "devices": { + "deviceNameLabel": "उपकरणको नाम", + "failed": "सत्रहरू लोड गर्न असफल भयो", + "removeDevice": "हटाउनुहोस्", + "title": "उपकरणहरु" + }, + "profile": { + "finish": "सम्पादन समाप्त गर्नुहोस्", + "firstColor": "प्रोफाइल रङ एक", + "secondColor": "प्रोफाइल रङ दुई", + "title": "प्रोफाइल तस्वीर सम्पादन गर्नुहोस्", + "userIcon": "प्रयोगकर्ता आइकन" + }, + "register": { + "cta": "सुरु गर्नु", + "text": "उपकरणहरू बीच आफ्नो cप्रगति साझेदारी गर्नुहोस् र तिनीहरूलाई सिंक राख्नुहोस्।", + "title": "क्लाउडमा सिंक गर्नुहोस्" + }, + "title": "खाता" + }, + "appearance": { + "activeTheme": "सक्रिय", + "themes": { + "blue": "निलो", + "default": "साधारण", + "gray": "खैरो", + "red": "रातो", + "teal": "हरियो-नीलो" + }, + "title": "रूप-रंग" + }, + "connections": { + "server": { + "description": "यदि तपाईं आफ्नो डेटा भण्डारण गर्न अनुकूलन ब्याकइन्डमा जडान गर्न चाहनुहुन्छ भने, यसलाई सक्षम गर्नुहोस् र URL प्रदान गर्नुहोस्। <0>निर्देशनहरू।", + "label": "अनुकूलन सर्भर", + "urlLabel": "अनुकूलन सर्भर URL" + }, + "setup": { + "doSetup": "सेटअप गर्नुहोस्", + "errorStatus": { + "description": "यो सेटअपमा एक वा बढी वस्तुहरू तपाईंको ध्यान आवश्यक छ जस्तो देखिन्छ।", + "title": "केहि तपाईंको ध्यान आवश्यक छ" + }, + "itemError": "यस सेटिङमा केही गडबड छ। यसलाई ठीक गर्न फेरि सेटअप गर्नुहोस्।", + "items": { + "default": "डिफल्ट सेटअप", + "extension": "एक्सटेन्सन", + "proxy": "आफ्नै प्रोक्सी" + }, + "redoSetup": "पुन: सेटअप गर्नुहोस्", + "successStatus": { + "description": "तपाइँ तपाइँको मनपर्ने मिडिया हेर्न सुरु गर्न को लागी सबै चीजहरू छन्।", + "title": "सबै कुरा मिलाइएको छ!" + }, + "unsetStatus": { + "description": "कृपया सेटअप प्रक्रिया सुरु गर्न दायाँ तिरको बटनमा क्लिक गर्नुहोस्।", + "title": "तपाईं सेटअप मार्फत जानुभएको छैन" + } + }, + "title": "संबन्धहरु", + "workers": { + "addButton": "नया worker हरु हाल्नुहोस", + "description": "एप्लिकेसन प्रकार्य बनाउनको लागि, सबै ट्राफिक प्रोक्सीहरू मार्फत रूट गरिएको छ। यदि तपाईं आफ्नो कामदारहरू ल्याउन चाहनुहुन्छ भने यसलाई सक्षम गर्नुहोस्। <0>निर्देशनहरू।", + "emptyState": "अहिलेसम्म worker हरु छैनन्, तल एउटा थप्नुहोस्", + "label": "आफ्नै proxy workers हरु चलाउनुहोस्", + "urlLabel": "Worker URL हरु", + "urlPlaceholder": "https://" + } + }, + "preferences": { + "language": "एपको भाषा", + "languageDescription": "सम्पूर्ण एप्लिकेसनमा भाषा लागू भयो।", + "thumbnail": "थम्बनेलहरू बनाउनुहोस्", + "thumbnailDescription": "अधिकांश समय, भिडियोहरूमा थम्बनेलहरू हुँदैनन्। तपाईंले वर्तमानमा नै तिनीहरूलाई उत्पन्न गर्न यो सेटिङ सक्षम गर्न सक्नुहुन्छ तर तिनीहरूले तपाईंको भिडियोलाई सुस्त बनाउन सक्छन्।", + "thumbnailLabel": "थम्बनेलहरू बनाउनुहोस्", + "title": "प्राथमिकता" + }, + "reset": "रिसेट गर्नुहोस्", + "save": "सेभ गर्नुहोस्", + "sidebar": { + "info": { + "appVersion": "एप संस्करण", + "backendUrl": "ब्याकइन्ड URL", + "backendVersion": "ब्याकएन्ड संस्करण", + "hostname": "होस्टको नाम", + "insecure": "असुरक्षित", + "notLoggedIn": "तपाईं लग्द इन हुनुहुन्न", + "secure": "सुरक्षित", + "title": "एप बारे जानकारी", + "unknownVersion": "अज्ञात", + "userId": "प्रयोगकर्ता ID" + } + }, + "subtitles": { + "backgroundLabel": "पृष्ठभूमि अस्पष्टता", + "colorLabel": "रङ", + "previewQuote": "म डराउनु हुँदैन। डर दिमागको हत्यारा हो।", + "textSizeLabel": "टेक्स्ट साइज", + "title": "उपशीर्षक" + }, + "unsaved": "तपाईंसँग सुरक्षित नगरिएका परिवर्तनहरू छन्" + } +} diff --git a/src/assets/locales/nl.json b/src/assets/locales/nl.json new file mode 100644 index 00000000..331b1411 --- /dev/null +++ b/src/assets/locales/nl.json @@ -0,0 +1,533 @@ +{ + "about": { + "description": "sudo-flix is een webapplicatie die het internet afzoekt naar streams. Het team streeft naar een minimalistische benadering van het consumeren van inhoud.", + "faqTitle": "Veelgestelde vragen", + "q1": { + "body": "sudo-flix host geen inhoud. Wanneer je op iets klikt om te bekijken, wordt het internet afgezocht naar de geselecteerde media (op het laadscherm en in het tabblad 'videobronnen' kun je zien welke bron je gebruikt). Media wordt nooit geüpload door sudo-flix, alles gaat via dit zoekmechanisme.", + "title": "Waar komt de content vandaan?" + }, + "q2": { + "body": "Het is niet mogelijk om een show of film aan te vragen, sudo-flix beheert geen content. Alle inhoud wordt bekeken via bronnen op het internet.", + "title": "Waar kan ik een show of film aanvragen?" + }, + "q3": { + "body": "Onze zoekresultaten worden aangestuurd door The Movie Database (TMDB) en worden weergegeven ongeacht of onze bronnen de inhoud daadwerkelijk hebben.", + "title": "De zoekresultaten tonen de show of film, waarom kan ik hem niet afspelen?" + }, + "title": "Over sudo-flix" + }, + "actions": { + "copied": "Gekopieerd", + "copy": "Kopieer" + }, + "auth": { + "createAccount": "Heb je nog geen account? <0>Maak er dan een.", + "deviceNameLabel": "Naam toestel", + "deviceNamePlaceholder": "Mijn telefoon", + "generate": { + "description": "Je passphrase werkt als je gebruikersnaam en wachtwoord. Sla je passphrase dus goed op, je hebt hem namelijk nodig om in te loggen", + "next": "Ik heb mijn passphrase opgeslagen", + "passphraseFrameLabel": "Wachtwoord", + "title": "Uw wachtwoord" + }, + "hasAccount": "Heb je al een account? <0>Log hier in.", + "login": { + "description": "Vul je wachtwoord in", + "deviceLengthError": "Vul de naam van je apparaat in", + "passphraseLabel": "12-Woordelijke wachtwoord", + "passphrasePlaceholder": "Wachtwoord", + "submit": "Log in", + "title": "Log in bij je account", + "validationError": "Incorrecte of incompleet wachtwoord" + }, + "register": { + "information": { + "color1": "Profielkleur 1", + "color2": "Profielkleur 2", + "header": "Vul hier het naam van je apparaat. Kies ook je de kleuren die je wil, en een icoontje", + "icon": "Icoontje", + "next": "Volgende", + "title": "Account informatie" + } + }, + "trust": { + "failed": { + "text": "Heb je het goed ingesteld?", + "title": "Kon niet met de server verbinden" + }, + "host": "Je gaat zo verbinden met <0>{{hostname}}, check even of je deze link vertrouwt", + "no": "Vorige pagina", + "title": "Vertrouw je deze server?", + "yes": "Ik vertrouw deze server" + }, + "verify": { + "description": "Vul je wachtwoord in zodat we weten dat je het opgeslagen hebt, dan kunnen we je account maken", + "invalidData": "Ongeldige data", + "noMatch": "Wachtwoord komt niet overeen", + "passphraseLabel": "Jouw wachtwoord", + "recaptchaFailed": "ReCatpcha validatie is mislukt", + "register": "Maak een account", + "title": "Bevestig je wachtwoord" + } + }, + "errors": { + "badge": "Tis kapot", + "details": "Informatie over foutmelding", + "reloadPage": "Herlaad de pagina", + "showError": "Meer informatie over foutmelding", + "title": "Er is iets fout gegaan!" + }, + "footer": { + "legal": { + "disclaimer": "Disclaimer", + "disclaimerText": "sudo-flix host geen bestanden, maar linkt alleen naar diensten van derden. Juridische kwesties moeten worden opgenomen met de bestandshosts en providers. sudo-flix is niet verantwoordelijk voor mediabestanden die worden getoond door de videoproviders." + }, + "links": { + "discord": "Discord", + "dmca": "DMCA", + "github": "Github" + }, + "tagline": "Bekijk je favoriete shows en films met deze open source streaming app." + }, + "global": { + "name": "sudo-flix", + "pages": { + "about": "Over", + "dmca": "DMCA", + "login": "Login", + "onboarding": "Instellen", + "pagetitle": "{{title}} - sudo-flix", + "register": "Registreren", + "settings": "Instellingen" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "Opgeslagen" + }, + "continueWatching": { + "sectionTitle": "Kijk verder" + }, + "mediaList": { + "stopEditing": "Stoppen met bewerken" + }, + "search": { + "allResults": "Dat is het!", + "failed": "Het is niet gelukt de media te laden, probeer het nog eens!", + "loading": "Aan het zoeken...", + "noResults": "We konden helaas niets vinden!", + "placeholder": "Wat wil je graag kijken?", + "sectionTitle": "Zoekresultaten" + }, + "titles": { + "day": { + "default": "Wat wil je vanmiddag kijken?", + "extra": [ + "Voel je je avontuurlijk? Dan is Jurassic Park misschien wel de perfecte keuze." + ] + }, + "morning": { + "default": "Waar wil je deze ochtend naar kijken?", + "extra": ["Ik hoor dat Before Sunrise goed is"] + }, + "night": { + "default": "Wat wil je vanavond bekijken?", + "extra": ["Moe? Ik hoor dat The Exorcist goed is."] + } + } + }, + "media": { + "episodeDisplay": "S{{season}} A{{episode}}", + "types": { + "movie": "Film", + "show": "Serie" + } + }, + "navigation": { + "banner": { + "offline": "Controleer je internetverbinding" + }, + "menu": { + "about": "Over ons", + "donation": "Doneer", + "logout": "Log uit", + "register": "Synchroniseren met de cloud", + "settings": "Instellingen", + "support": "Ondersteuning" + } + }, + "notFound": { + "badge": "Pagina niet gevonden", + "goHome": "Naar de home-pagina", + "message": "We hebben echt alles geprobeerd, zelfs tijdrijzen; echter hebben we deze pagina helaas niet kunnen vinden.", + "title": "Pagina niet gevonden" + }, + "onboarding": { + "defaultConfirm": { + "cancel": "Annuleren", + "confirm": "Gebruik standaardinstallatie", + "description": "De standaardinstallatie heeft niet de beste streams en kan onbruikbaar traag zijn.", + "title": "Weet je het zeker?" + }, + "extension": { + "back": "Terug", + "explainer": "Door gebruik te maken van de browserextensie kun je de beste streams krijgen. Met slechts een eenvoudige installatie.", + "explainerIos": "Helaas, de browserextensie is niet ondersteund op iOS. Druk op Terug om een andere optie te kiezen.", + "extensionHelp": "Als je de extensie hebt geïnstalleerd maar niet wordt gedetecteerd, Open dan de extensie via het extensies menu in je browser en volg de stappen op het scherm.", + "linkChrome": "Installeer de Chrome-extensie", + "linkFirefox": "Installeer de Firefox-extensie", + "notDetecting": "Geïnstalleerd op Chrome maar wordt niet weergegeven? Probeer de pagina opnieuw te laden!", + "notDetectingAction": "Pagina opnieuw laden", + "status": { + "disallowed": "Extensie is niet ingeschakeld voor deze pagina", + "disallowedAction": "Extensie inschakelen", + "failed": "Mislukt om status aan te vragen", + "loading": "Aan het wachten tot je de extensie hebt geïnstalleerd", + "outdated": "Extensieversie te oud", + "success": "Extensie werkt zoals verwacht!" + }, + "submit": "Doorgaan", + "title": "Laten we beginnen met de extensie" + }, + "proxy": { + "back": "Terug", + "explainer": "Met de proxy-methode kun je hoogwaardige streams verkrijgen door zelf een proxy op te zetten.", + "input": { + "errorConnection": "Kon geen verbinding maken met de proxy", + "errorInvalidUrl": "Geen geldige URL", + "errorNotProxy": "Verwachtte een proxy maar kreeg een website", + "label": "Proxy URL", + "placeholder": "https://" + }, + "link": "Leer hoe je de proxy kunt instellen", + "submit": "Proxy opslaan", + "title": "Laten we een nieuwe proxy instellen" + }, + "start": { + "explainer": "Om de beste mogelijke streams te krijgen, moet je kiezen welke streamingmethode je wilt gebruiken.", + "options": { + "default": { + "text": "Ik wil geen streams van goede kwaliteit, <0 /> <1>Gebruik de standaardinstellingen." + }, + "extension": { + "action": "Installeer extensie", + "description": "Installeer browserextensie en krijg toegang tot de beste bronnen.", + "quality": "Beste kwaliteit", + "title": "Browserextensie" + }, + "proxy": { + "action": "Proxy instellen", + "description": "Proxy instellen in slechts 5 minuten en krijg toegang tot geweldige bronnen.", + "quality": "Goede kwaliteit", + "title": "Eigen proxy" + } + }, + "title": "Laten we beginnen met het instellen van sudo-flix" + } + }, + "overlays": { + "close": "Sluiten" + }, + "player": { + "back": { + "default": "Naar de home-pagina", + "short": "Terug" + }, + "casting": { + "enabled": "Aan het casten..." + }, + "menus": { + "downloads": { + "disclaimer": "Downloads worden direct bij de bron opgehaald. sudo-flix heeft geen controle over het bestand dat je ontvangt.", + "downloadPlaylist": "Afspeellijst downloaden", + "downloadSubtitle": "Download huidige ondertiteling", + "downloadVideo": "Download filmpje", + "hlsDisclaimer": "Downloads worden rechtstreeks van de aanbieder gehaald. sudo-flix heeft geen controle over de manier waarop de downloads worden aangeboden.

    Houd er rekening mee dat u nu een HLS-afspeellijst downloadt, het wordt afgeraden deze te downloaden als u niet bekend bent met geavanceerde streamingbestandstypen. Probeer verschillende bronnen voor verschillende streamingbestandstypen.", + "onAndroid": { + "1": "Om te downloaden op Android, klik je op de downloadknop en vervolgens, op de nieuwe pagina, tap and hold op de video en selecteer save.", + "shortTitle": "Download / Android", + "title": "Downloaden op Android" + }, + "onIos": { + "1": "Als je wilt downloaden op iOS, klik je op de downloadknop en vervolgens op de nieuwe pagina op en vervolgens op Save to Files .", + "shortTitle": "Download / iOS", + "title": "Downloaden op iOS" + }, + "onPc": { + "1": "Klik op de downloadknop op de pc en klik op de nieuwe pagina met de rechtermuisknop op de video en selecteer Video opslaan als", + "shortTitle": "Download / PC", + "title": "Downloaden op PC" + }, + "title": "Download" + }, + "episodes": { + "button": "Afleveringen", + "emptyState": "Er zijn in dit seizoen geen afleveringen, kijk over een paar jaar nog eens!", + "episodeBadge": "A{{episode}}", + "loadingError": "Er ging iets mis bij het laden van dit seizoen", + "loadingList": "Aan het laden...", + "loadingTitle": "Aan het zoeken...", + "unairedEpisodes": "Een of meer afleveringen van dit seizoen zijn uitgeschakeld omdat ze nog niet zijn uitgezonden." + }, + "playback": { + "speedLabel": "Afspeelsnelheid", + "title": "Afspeel instellingen" + }, + "quality": { + "automaticLabel": "Automatische kwaliteit", + "hint": "Je kunt <0>bron omschakelen proberen om verschillende kwaliteitsopties te krijgen.", + "iosNoQuality": "Vanwege door Apple gedefinieerde beperkingen is kwaliteitsselectie niet beschikbaar op iOS voor deze bron. U kunt <0>omschakelen naar een andere bron proberen om andere kwaliteitsopties te krijgen.", + "title": "Kwaliteit" + }, + "settings": { + "downloadItem": "Download", + "enableSubtitles": "Ondertitels inschakelen", + "experienceSection": "Kijk-ervaring", + "playbackItem": "Afspeel instellingen", + "qualityItem": "Kwaliteit", + "sourceItem": "Video-bron", + "subtitleItem": "Instellingen ondertiteling", + "videoSection": "Video instellingen" + }, + "sources": { + "failed": { + "text": "Er ging iets mis bij het zoeken naar videos, probeer een andere bron.", + "title": "Het is niet gelukt dit op te halen" + }, + "noEmbeds": { + "text": "We konden geen embeds vinden, probeer een andere bron.", + "title": "Geen embeds gevonden" + }, + "noStream": { + "text": "Deze bron heeft geen links voor deze film of serie.", + "title": "Geen bron" + }, + "title": "Bronnen", + "unknownOption": "Onbekend" + }, + "subtitles": { + "customChoice": "Selecteer ondertiteling uit bestand", + "customizeLabel": "Aanpassen", + "offChoice": "Uit", + "settings": { + "backlink": "Aangepaste ondertiteling", + "delay": "Ondertiteling vertraging", + "fixCapitals": "Hoofdlettergebruik corrigeren" + }, + "title": "Ondertiteling", + "unknownLanguage": "Onbekend" + } + }, + "metadata": { + "api": { + "text": "Kan API-metagegevens niet laden. Controleer uw internetverbinding.", + "title": "Kan API-metagegevens niet laden" + }, + "dmca": { + "badge": "Weggehaald", + "text": "Deze media is niet langer beschikbaar vanwege een verwijderingsverzoek of auteursrechtenclaim.", + "title": "Media is weggehaald" + }, + "extensionPermission": { + "badge": "Toestemming ontbreekt", + "button": "Gebruik de extensie", + "text": "Je hebt de browserextensie, maar we hebben jouw toestemming nodig om gebruik te maken van de extensie.", + "title": "Configureer de extensie" + }, + "failed": { + "badge": "Mislukt", + "homeButton": "Ga naar de home-pagina", + "text": "We konden geen informatie over deze media ophalen bij TMDB. Kijk even na of TMDB te bereiken is op dit netwerk.", + "title": "Metadata ophalen mislukt" + }, + "notFound": { + "badge": "Pagina niet gevonden", + "homeButton": "Naar de home-pagina", + "text": "We konden dit stukje media niet vinden. Het is mogelijk verwijderd, of jij hebt zelf de URL aangepast.", + "title": "We konden deze media niet vinden." + } + }, + "nextEpisode": { + "cancel": "Annuleren", + "next": "Volgende aflevering" + }, + "playbackError": { + "badge": "Afspeelfout", + "errors": { + "errorAborted": "Het laden van de media is stopgezet omdat de gebruiker daar om vroeg.", + "errorDecode": "Ondanks het feit dat we eerder dachten dat deze bron beschikbaar, was dat toch niet zo en is er een decode error ontstaan.", + "errorGenericMedia": "Onbekende media foutmelding.", + "errorNetwork": "Er ging iets mis waardoor de media niet langer beschikbaar is, al was hij dat eerst wel.", + "errorNotSupported": "Deze media or media provider wordt niet ondersteund." + }, + "homeButton": "Naar de home-pagina", + "text": "Er ging iets mis bij het afspelen. Probeer het nog eens.", + "title": "Oeps, hier ging iets mis!" + }, + "scraping": { + "items": { + "failure": "Daar ging iets mis", + "notFound": "Er is geen video gevonden", + "pending": "Naar videos aan het zoeken..." + }, + "notFound": { + "badge": "Niet gevonden", + "detailsButton": "Meer informatie", + "homeButton": "Naar de home-pagina", + "text": "We hebben al onze providers lief aangekeken maar we hebben niets kunnen vinden. Wij beheersen de media niet, en bepalen dus niet wat er beschikbaar is. Klik op \"meer informatie over foutmelding\" voor meer informatie.", + "title": "Dat konden we niet vinden" + } + }, + "time": { + "regular": "{{timeWatched}} / {{duration}}", + "remaining": "Nog {{timeLeft}} • Klaar om {{timeFinished, datetime}}", + "shortRegular": "{{timeWatched}}", + "shortRemaining": "-{{timeLeft}}" + }, + "turnstile": { + "description": "Bevestig dat u een mens bent door de Captcha aan de rechterkant in te vullen. Dit is om sudo-flix veilig te houden!", + "error": "Kan uw menselijkheid niet verifiëren. Probeer het opnieuw.", + "title": "We moeten verifiëren dat u een mens bent.", + "verifyingHumanity": "Je menselijkheid verifiëren..." + } + }, + "screens": { + "dmca": { + "text": "Welkom op de DMCA-contactpagina van sudo-flix! Wij respecteren intellectuele eigendomsrechten en willen eventuele problemen met auteursrechten snel aanpakken. Als u van mening bent dat uw auteursrechtelijk beschermde werk onjuist is gebruikt op ons platform, stuur dan een gedetailleerde DMCA-kennisgeving naar het onderstaande e-mailadres. Vermeld een beschrijving van het auteursrechtelijk beschermde materiaal, uw contactgegevens en een verklaring dat u te goeder trouw bent. Wij zetten ons in om deze zaken snel op te lossen en waarderen uw medewerking om sudo-flix een plek te houden waar creativiteit en auteursrechten worden gerespecteerd.", + "title": "DMCA" + }, + "loadingApp": "Toepassing laden", + "loadingUser": "Je profiel laden", + "loadingUserError": { + "logout": "Uitloggen", + "reset": "Aangepaste server resetten", + "text": "Het laden van uw profiel is mislukt", + "textWithReset": "Is het laden van je profiel van je aangepaste server mislukt en wil je terug naar de standaardserver?" + }, + "migration": { + "failed": "Het migreren van uw gegevens is mislukt.", + "inProgress": "Even geduld, we zijn je gegevens aan het migreren. Dit zal niet lang duren." + } + }, + "settings": { + "account": { + "accountDetails": { + "deviceNameLabel": "Apparaatnaam", + "deviceNamePlaceholder": "Persoonlijke telefoon", + "editProfile": "Bewerken", + "logoutButton": "Uitloggen" + }, + "actions": { + "delete": { + "button": "Account verwijderen", + "confirmButton": "Account verwijderen", + "confirmDescription": "Weet je zeker dat je je account wilt verwijderen? Al je gegevens zullen verloren gaan!", + "confirmTitle": "Weet je het zeker?", + "text": "Deze actie is onomkeerbaar. Alle gegevens worden verwijderd en er kan niets worden hersteld.", + "title": "Account verwijderen" + }, + "title": "Acties" + }, + "devices": { + "deviceNameLabel": "Apparaatnaam", + "failed": "Sessies niet geladen", + "removeDevice": "Verwijder", + "title": "Apparaten" + }, + "profile": { + "finish": "Bewerken voltooien", + "firstColor": "Profielkleur 1", + "secondColor": "Profielkleur 2", + "title": "Profielfoto bewerken", + "userIcon": "Gebruikerspictogram" + }, + "register": { + "cta": "Aan de slag", + "text": "Deel uw kijkvoortgang tussen apparaten en houd ze gesynchroniseerd.", + "title": "Synchroniseren met de cloud" + }, + "title": "Account" + }, + "appearance": { + "activeTheme": "Actief", + "themes": { + "blue": "Blauw", + "default": "Standaard", + "gray": "Grijs", + "red": "Rood", + "teal": "Groenblauw" + }, + "title": "Uiterlijk" + }, + "connections": { + "server": { + "description": "Als je verbinding wilt maken met een eigen backend om je gegevens op te slaan, schakel dan deze optie in en geef de URL op. <0>Instructies.", + "label": "Eigen server", + "urlLabel": "Eigen server URL" + }, + "setup": { + "doSetup": "Instellen", + "errorStatus": { + "description": "Het lijkt erop dat één of meer items in deze configuratie jouw aandacht nodig hebben.", + "title": "Iets vereist jouw aandacht" + }, + "itemError": "Er is iets mis met deze instelling. Klik op opnieuw instellen om op te lossen.", + "items": { + "default": "Standaard installatie", + "extension": "Extensie", + "proxy": "Eigen proxy" + }, + "redoSetup": "Opnieuw instellen", + "successStatus": { + "description": "In alles is ingesteld, je kunt nu je favoriete media bekijken.", + "title": "Alles is ingesteld!" + }, + "unsetStatus": { + "description": "Klik op de knop aan de rechterkant om het installatieproces te starten.", + "title": "Je hebt de installatieprocedure nog niet doorlopen" + } + }, + "title": "Verbindingen", + "workers": { + "addButton": "Nieuwe worker toevoegen", + "description": "Om de applicatie te laten werken, wordt al het verkeer omgeleid via proxies. Schakel dit in als je je eigen workers wilt gebruiken. <0>Instructies.", + "emptyState": "Nog geen workers, voeg er hieronder een toe", + "label": "Eigen proxy werker gebruiken", + "urlLabel": "Worker URLs", + "urlPlaceholder": "https://" + } + }, + "preferences": { + "language": "Applicatietaal", + "languageDescription": "Taal toegepast op de gehele applicatie.", + "thumbnail": "Genereer miniaturen", + "thumbnailDescription": "Meestal hebben video's geen miniaturen. Je kunt deze instelling inschakelen om ze dynamisch te genereren, maar dit kan je video vertragen.", + "thumbnailLabel": "Genereer miniaturen", + "title": "Voorkeuren" + }, + "reset": "Resetten", + "save": "Wijzigingen opslaan", + "sidebar": { + "info": { + "appVersion": "App versie", + "backendUrl": "Backend URL", + "backendVersion": "Backend versie", + "hostname": "hostnaam", + "insecure": "Onveilig", + "notLoggedIn": "U bent niet ingelogd", + "secure": "Veilig", + "title": "App informatie", + "unknownVersion": "Onbekend", + "userId": "Gebruiker ID" + } + }, + "subtitles": { + "backgroundLabel": "Achtergrond dekking", + "colorLabel": "Kleur", + "previewQuote": "Ik mag niet bang zijn. Angst doodt de geest.", + "textSizeLabel": "Tekengrootte", + "title": "Ondertiteling" + }, + "unsaved": "U heeft niet-opgeslagen wijzigingen" + } +} diff --git a/src/assets/locales/nv.json b/src/assets/locales/nv.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/src/assets/locales/nv.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/src/assets/locales/pa.json b/src/assets/locales/pa.json new file mode 100644 index 00000000..1214e217 --- /dev/null +++ b/src/assets/locales/pa.json @@ -0,0 +1,64 @@ +{ + "about": { + "description": "ਮੂਵੀ-ਵੈਬ ਇੱਕ ਵੈੱਬ ਐਪਲੀਕੇਸ਼ਨ ਹੈ ਜੋ ਸਟ੍ਰੀਮ ਲਈ ਇੰਟਰਨੈਟ ਦੀ ਖੋਜ ਕਰਦੀ ਹੈ. ਟੀਮ ਦਾ ਉਦੇਸ਼ ਕੰਟੈਂਟ ਦੀ ਖਪਤ ਕਰਨ ਲਈ ਜ਼ਿਆਦਾਤਰ ਘੱਟੋ-ਘੱਟ ਪਹੁੰਚ ਹੈ.", + "faqTitle": "ਆਮ ਸਵਾਲ", + "q1": { + "body": "ਮੂਵੀ ਵੈੱਬ ਕਿਸੇ ਕੰਟੈਂਟ ਦੀ ਮੇਜ਼ਬਾਨੀ ਨਹੀਂ ਕਰਦਾ ਹੈ.ਜਦੋਂ ਤੁਸੀਂ ਦੇਖਣ ਲਈ ਕਿਸੇ ਚੀਜ਼ 'ਤੇ ਕਲਿੱਕ ਕਰਦੇ ਹੋ, ਤਾਂ ਚੁਣੇ ਹੋਏ ਮੀਡੀਆ ਲਈ ਇੰਟਰਨੈੱਟ ਖੋਜਿਆ ਜਾਂਦਾ ਹੈ (ਲੋਡਿੰਗ ਸਕ੍ਰੀਨ 'ਤੇ ਅਤੇ 'ਵੀਡੀਓ ਸਰੋਤ' ਟੈਬ ਵਿੱਚ ਤੁਸੀਂ ਦੇਖ ਸਕਦੇ ਹੋ ਕਿ ਤੁਸੀਂ ਕਿਹੜਾ ਸਰੋਤ ਵਰਤ ਰਹੇ ਹੋ) ਮੀਡੀਆ ਕਦੇ ਵੀ ਮੂਵੀ-ਵੈੱਬ ਦੁਆਰਾ ਅਪਲੋਡ ਨਹੀਂ ਹੁੰਦਾ, ਸਭ ਕੁਝ ਇਸ ਖੋਜ ਵਿਧੀ ਦੁਆਰਾ ਹੁੰਦਾ ਹੈ।", + "title": "ਕੰਟੈਂਟ ਕਿੱਥੋਂ ਆਉਂਦੀ ਹੈ?" + }, + "q2": { + "body": "ਕਿਸੇ ਸ਼ੋਅ ਜਾਂ ਮੂਵੀ ਦੀ ਬੇਨਤੀ ਕਰਨਾ ਸੰਭਵ ਨਹੀਂ ਹੈ, ਮੂਵੀ-ਵੈੱਬ ਕਿਸੇ ਵੀ ਕੰਟੈਂਟ ਦਾ ਪ੍ਰਬੰਧਨ ਨਹੀਂ ਕਰਦਾ ਹੈ। ਸਾਰੇ ਕੰਟੈਂਟ ਨੂੰ ਇੰਟਰਨੈੱਟ 'ਤੇ ਸਰੋਤਾਂ ਰਾਹੀਂ ਦੇਖਿਆ ਜਾਂਦਾ ਹੈ।", + "title": "ਮੈਂ ਇੱਕ ਸ਼ੋਅ ਜਾਂ ਫ਼ਿਲਮ ਲਈ ਕਿੱਥੇ ਬੇਨਤੀ ਕਰ ਸਕਦਾ/ਸਕਦੀ ਹਾਂ?" + }, + "q3": { + "title": "ਖੋਜ ਨਤੀਜੇ ਸ਼ੋਅ ਜਾਂ ਫ਼ਿਲਮ ਦਿਖਾਉਂਦੇ ਹਨ, ਮੈਂ ਇਸਨੂੰ ਕਿਉਂ ਨਹੀਂ ਚਲਾ ਸਕਦਾ?" + }, + "title": "ਮੂਵੀ-ਵੈੱਬ ਡੀ ਬਾਰੇ" + }, + "actions": { + "copied": "ਕਾਪੀਡ", + "copy": "ਕਾਪੀ" + }, + "auth": { + "deviceNameLabel": "ਡਿਵਾਈਸ ਦਾ ਨਾਮ", + "generate": { + "passphraseFrameLabel": "ਪੈਰਾਫਰਾਜ਼" + }, + "login": { + "passphrasePlaceholder": "ਪੈਰਾਫਰਾਜ਼", + "submit": "ਲੌਗ-ਇਨ" + }, + "register": { + "information": { + "next": "ਅਗਲਾ" + } + }, + "trust": { + "no": "ਵਾਪਸ ਜਾਓ", + "yes": "ਮੈਨੂੰ ਇਸ ਸਰਵਰ 'ਤੇ ਭਰੋਸਾ ਹੈ" + } + }, + "footer": { + "links": { + "discord": "ਡਿਸਕੋਰਡ", + "dmca": "ਡੀ.ਐਮ.ਸੀ.ਏ", + "github": "ਗਿਥਬ" + } + }, + "global": { + "name": "ਮੂਵੀ-ਵੈੱਬ", + "pages": { + "about": "ਬਾਰੇ", + "dmca": "ਡੀ.ਐਮ.ਸੀ.ਏ", + "login": "ਲਾਗਿਨ", + "pagetitle": "{{title}} - ਮੂਵੀ-ਵੈੱਬ", + "register": "ਰਜਿਸਟਰ", + "settings": "ਸੈਟਿੰਗਾਂ" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "ਬੁੱਕਮਾਰਕ" + } + } +} diff --git a/src/assets/locales/pirate.json b/src/assets/locales/pirate.json new file mode 100644 index 00000000..8c8efb5d --- /dev/null +++ b/src/assets/locales/pirate.json @@ -0,0 +1,396 @@ +{ + "about": { + "description": "Ahoy there! \"sudo-flix\" be a fine vessel on the digital seas, a web application scourin' the vast internet for streams. The crew be settin' their sights on a mostly minimalistic approach to enjoyin' the booty of entertainment. Arrr!", + "faqTitle": "Common queries", + "q1": { + "body": "Arrr! \"sudo-flix\" be a noble ship that don't harbor any content itself. When ye click to set yer eyes on a treasure, the application sets sail across the internet, scourin' the vast seas for the chosen media. Check the loading screen and the 'video sources' tab to spy on which source be providin' the entertainment. No media be uploaded by \"sudo-flix\" — it be all through this searchin' mechanism, savvy?", + "title": "From which cove does the content emerge, me heartie?" + }, + "q2": { + "body": "Avast, ye landlubber! Be warned, ye can't be requestin' a show or movie on \"sudo-flix,\" for it don't manage any content. All the booty ye set yer eyes on be viewed through sources sailin' the internet. The ship merely be a vessel, not a keeper of the treasures. Navigate wisely, me heartie!", + "title": "Where be I able to make a hearty request for a show or movie?" + }, + "q3": { + "body": "Arrr, set yer sights on this, me matey! Our search results be fueled by The Movie Database (TMDB), showin' the way regardless of whether our sources in the vast digital seas actually bear the coveted content. It be a guide, not a promise of a sure find. Navigate the waters wisely, for the winds of the internet can be fickle!", + "title": "Why be the search results unveilin' the show or movie, yet I can't set sail to watch it?" + }, + "title": "The tales of \"sudo-flix\"" + }, + "actions": { + "copied": "Copied", + "copy": "Copy" + }, + "auth": { + "createAccount": "Don't have a ship yet? <0>Hoist the sails and make yer own", + "deviceNameLabel": "Ship name", + "deviceNamePlaceholder": "Muad'Dib's Pirate Ship", + "generate": { + "description": "If ye lose this, ye be a silly goose and will be posted on the wall of shame™️", + "next": "Ahoy! I've stashed me secret code away for safe keepin'.", + "passphraseFrameLabel": "Secret Code", + "title": "Yer Passphrase" + }, + "hasAccount": "Arrr! Ye already got a ship on the seas? <0>Board here, me heartie!", + "login": { + "description": "Arr, ye be askin' for the key to me top-secret lair, also known as The Fortress of Wordsmithery, accessed only by recitin' the sacred incantation of the 12-word passphrase!", + "deviceLengthError": "Bestow a name upon yer contraption, me heartie!", + "passphraseLabel": "12-Word Passphrase", + "passphrasePlaceholder": "Passphrase", + "submit": "Hoist Anchor", + "title": "Hoist the Jolly Roger", + "validationError": "Arr, incorrect or incomplete passphrase" + }, + "register": { + "information": { + "color1": "First Mate color", + "color2": "Second Mate color", + "header": "Enter a moniker for yer ship and choose a pirate icon and colors, arrr!", + "icon": "Pirate icon", + "next": "Forward", + "title": "Pirate Account information" + } + }, + "trust": { + "failed": { + "text": "Did ye configure it correctly?", + "title": "Failed to reach the backend" + }, + "host": "Do ye trust <0>{{hostname}}?", + "no": "Abandon Ship", + "title": "Do ye trust this ship?", + "yes": "Trust" + }, + "verify": { + "description": "If ye already lost it, how will ye ever be able to take care of a wee buccaneer?", + "invalidData": "Data be not valid", + "noMatch": "Passphrase doesn't match", + "passphraseLabel": "Yer passphrase", + "recaptchaFailed": "ReCaptcha validation failed", + "register": "Forge yer account, matey!", + "title": "Enter yer passphrase" + } + }, + "errors": { + "badge": "Shiver me timbers", + "details": "Ahoy! What be the secrets of the glitch?", + "reloadPage": "Reload the page", + "showError": "Reveal the details of the error, me matey", + "title": "That be an error, Captain" + }, + "footer": { + "legal": { + "disclaimer": "Disclaimer", + "disclaimerText": "sudo-flix does not host any files, it merely links to 3rd party services. Legal issues should be taken up with the file hosts and providers. sudo-flix be not responsible for any media files shown by the video providers." + }, + "links": { + "discord": "Discord", + "dmca": "DMCA", + "github": "GitHub" + }, + "tagline": "Watch yer favorite shows and movies with this open source streaming ship." + }, + "global": { + "name": "sudo-flix", + "pages": { + "about": "About", + "dmca": "DMCA", + "login": "Login", + "pagetitle": "{{title}} - sudo-flix", + "register": "Forge yer account, matey!", + "settings": "Settings" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "Bookmarks" + }, + "continueWatching": { + "sectionTitle": "Continue Watchin'" + }, + "mediaList": { + "stopEditing": "Stop editin'" + }, + "search": { + "allResults": "That's all we have, me heartie!", + "failed": "Arrrr failed to find media, try again!", + "loading": "Hold yer horses, me heartie!", + "noResults": "We couldn't find anythin', arrr!", + "placeholder": "What do ye want to watch?", + "sectionTitle": "Searchin' results" + }, + "titles": { + "day": { + "default": "What be yer fancy for this fine afternoon's viewing, me heartie?" + }, + "morning": { + "default": "What be yer fancy for this mornin's viewing, me heartie?", + "extra": [ + "I be hearin' that 'Before Sunrise' be a fine choice, me heartie" + ] + }, + "night": { + "default": "What be yer desire for the night's entertainment, me heartie?", + "extra": [ + "Feelin' weary, are ye? I be hearin' 'The Exorcist' be a good pick to stir the spirits, me heartie." + ] + } + } + }, + "media": { + "episodeDisplay": "S{{season}} E{{episode}}", + "types": { + "movie": "Film", + "show": "Show" + } + }, + "navigation": { + "banner": { + "offline": "Check yer internet connection" + }, + "menu": { + "about": "About us", + "donation": "Share yer treasures and donate to the cause", + "logout": "Abandon ship", + "register": "Sync to the cloud", + "settings": "Settings", + "support": "Support" + } + }, + "notFound": { + "badge": "Not found", + "goHome": "Back to home port", + "message": "We looked everywhere: under the bins, in the closet, behind the proxy but ultimately couldn't find the treasure map ye be lookin' for.", + "title": "Couldn't find that treasure map" + }, + "overlays": { + "close": "Close" + }, + "player": { + "back": { + "default": "Back to home port", + "short": "Back" + }, + "casting": { + "enabled": "Casting to the contraption, setting sail..." + }, + "menus": { + "downloads": { + "disclaimer": "Downloads be taken directly from the provider. sudo-flix does not have control over how the downloads be provided.", + "downloadVideo": "Download film", + "onAndroid": { + "1": "To download on Android, tap and hold on the film, then select save.", + "shortTitle": "Download / Android", + "title": "Downloadin' on Android" + }, + "onIos": { + "1": "To download on iOS, click , then Save to Files . All that's left to do now be to pick a nice and cozy chest for yer film!", + "shortTitle": "Download / iOS", + "title": "Downloadin' on iOS" + }, + "onPc": { + "1": "On PC, right click the film and select Save film as", + "shortTitle": "Download / PC", + "title": "Downloadin' on PC" + }, + "title": "Buried Treasure" + }, + "episodes": { + "button": "Episodes", + "emptyState": "There be no episodes in this season, check back later!", + "episodeBadge": "E{{episode}}", + "loadingError": "Error loadin' season", + "loadingList": "Loading...", + "loadingTitle": "Loading..." + }, + "playback": { + "speedLabel": "Playback speed", + "title": "Playback settings" + }, + "quality": { + "automaticLabel": "Automatic quality", + "hint": "Ye can try <0>switchin' source to get different quality options.", + "iosNoQuality": "Due to Apple-defined limitations, quality selection be not available on iOS for this source. Ye can try <0>switchin' to another source to get different quality options.", + "title": "Quality" + }, + "settings": { + "downloadItem": "Buried Treasure", + "enableSubtitles": "Unfurl the subtitles", + "experienceSection": "Viewing Experience", + "playbackItem": "Playback settings", + "qualityItem": "Quality", + "sourceItem": "Video sources", + "subtitleItem": "Set yer subtitle course", + "videoSection": "Video settings" + }, + "sources": { + "failed": { + "text": "We were unable to find any videos for this source. Don't come bitchin' to us about it, just try another source.", + "title": "Failed to scrape" + }, + "noEmbeds": { + "text": "We were unable to find any embeds for this source, please try another.", + "title": "No embeds found" + }, + "noStream": { + "text": "This source has no streams for this film or show.", + "title": "No stream" + }, + "title": "Sources", + "unknownOption": "Unknown" + }, + "subtitles": { + "customizeLabel": "Tailor it to yer liking", + "settings": { + "fixCapitals": "Mend the capital letters" + } + } + }, + "metadata": { + "failed": { + "badge": "Failed", + "homeButton": "Go home port", + "text": "Oh, me apologies, sweetie! The itty-bitty sudo-flix did its utmost bestest, but alas, no wucky videos to be spotted anywhere (´⊙ω⊙`) Please don't be angwy, wittle sudo-flix ish twying so hard. Can ye find it in yer heart to forgive? UwU 💖", + "title": "Failed to load meta data" + }, + "notFound": { + "badge": "Not found", + "homeButton": "Back to home port", + "text": "We couldn't find the media ye requested. Either it's been removed or ye tampered with the URL.", + "title": "Couldn't find that media." + } + }, + "nextEpisode": { + "cancel": "Cancel", + "next": "Next episode" + }, + "playbackError": { + "badge": "Not found", + "errors": { + "errorAborted": "The fetchin' of the associated resource was aborted by the user's request.", + "errorDecode": "Despite havin' previously been determined to be usable, an error occurred while tryin' to decode the media resource, resultin' in an error.", + "errorGenericMedia": "Unknown media error occurred", + "errorNetwork": "Some kind of network error occurred which prevented the media from bein' successfully fetched, despite havin' previously been available.", + "errorNotSupported": "The associated resource or media provider object has been found to be unsuitable." + }, + "homeButton": "Go home port", + "text": "Oh, me apologies, sweetie! The itty-bitty sudo-flix did its utmost bestest, but alas, no wucky videos to be spotted anywhere (´⊙ω⊙`) Please don't be angwy, wittle sudo-flix ish twying so hard. Can ye find it in yer heart to forgive? UwU 💖", + "title": "Whoops, it broke!" + }, + "scraping": { + "items": { + "failure": "Error occurred", + "notFound": "Doesn't have the video", + "pending": "Checkin' for videos..." + }, + "notFound": { + "badge": "Not found", + "homeButton": "Go home port", + "text": "Oh, me apologies, sweetie! The itty-bitty sudo-flix did its utmost bestest, but alas, no wucky videos to be spotted anywhere (´⊙ω⊙`) Please don't be angwy, wittle sudo-flix ish twying so hard. Can ye find it in yer heart to forgive? UwU 💖", + "title": "Goo goo gaa gaa" + } + }, + "time": { + "regular": "{{timeWatched}} / {{duration}}", + "remaining": "{{timeLeft}} left • Finish at {{timeFinished, datetime}}", + "shortRegular": "{{timeWatched}}", + "shortRemaining": "-{{timeLeft}}" + } + }, + "screens": { + "loadingApp": "Loadin' application", + "loadingUser": "Loadin' yer pirate profile", + "loadingUserError": { + "reset": "Reset custom ship", + "text": "Failed to load yer pirate profile", + "textWithReset": "Failed to load yer pirate profile from yer custom ship, want to reset back to default?" + }, + "migration": { + "failed": "Failed to migrate yer booty.", + "inProgress": "Please hold, we be migratin' yer booty. This shouldn't take long." + } + }, + "settings": { + "account": { + "accountDetails": { + "deviceNameLabel": "Ship name", + "deviceNamePlaceholder": "Fremen tablet", + "editProfile": "Edit", + "logoutButton": "Abandon ship" + }, + "actions": { + "delete": { + "button": "Abandon ship for all eternity", + "confirmButton": "Abandon ship for all eternity", + "confirmDescription": "Arrr ye sure ye want to abandon yer ship for all eternity? All yer booty will be lost!", + "confirmTitle": "Arrr ye sure?", + "text": "This action be irreversible. All booty will be deleted and nothin' can be recovered.", + "title": "Abandon ship for all eternity" + }, + "title": "Actions" + }, + "devices": { + "deviceNameLabel": "Ship name", + "failed": "Failed to load sessions", + "removeDevice": "Abandon ship", + "title": "Shipmates" + }, + "profile": { + "finish": "Finish editing", + "firstColor": "First color", + "secondColor": "Second color", + "title": "Edit Pirate Portrait", + "userIcon": "Pirate icon" + }, + "register": { + "cta": "Get started", + "text": "Instantly share yer watch progress between devices and keep 'em synced.", + "title": "Sync to the Cloud" + }, + "title": "Treasure Chest" + }, + "appearance": { + "activeTheme": "Active", + "themes": { + "blue": "Blue", + "default": "Default", + "gray": "Gray", + "red": "Red", + "teal": "Teal" + }, + "title": "Appearance" + }, + "connections": { + "server": { + "description": "To make the application function, all traffic be routed through proxies. Enable this if ye want to bring yer own sailors.", + "label": "Custom ship", + "urlLabel": "Custom ship URL" + }, + "title": "Connections", + "workers": { + "addButton": "Recruit new sailor", + "description": "To make the application function, all traffic be routed through proxies. Enable this if ye want to bring yer own sailors.", + "emptyState": "No sailors yet, add one below", + "label": "Use custom proxy sailors", + "urlLabel": "Sailor URLs", + "urlPlaceholder": "https://" + } + }, + "reset": "Reset", + "save": "Save", + "sidebar": { + "info": { + "appVersion": "App version", + "backendUrl": "Backend URL", + "backendVersion": "Backend version", + "hostname": "Ship name", + "insecure": "Insecure", + "notLoggedIn": "Not logged in", + "secure": "Secure", + "title": "App information", + "unknownVersion": "Unknown", + "userId": "Pirate ID" + } + }, + "unsaved": "Ye have unsaved changes" + } +} diff --git a/src/assets/locales/pl.json b/src/assets/locales/pl.json new file mode 100644 index 00000000..e1b3d9ed --- /dev/null +++ b/src/assets/locales/pl.json @@ -0,0 +1,533 @@ +{ + "about": { + "description": "sudo-flix jest aplikacją internetową, która wyszukuje w internecie strumienia. Zespół dąży do minimalistycznego podejścia do konsumpcji treści.", + "faqTitle": "Częste pytania", + "q1": { + "body": "sudo-flix nie udostępnia żadnych treści. Kiedy klikniesz na coś co chcesz obejrzeć, internet zostanie przeszukany pod kątem wybranych multimediów (na ekranie ładowania oraz w zakładce „źródła wideo” możesz zobaczyć, z jakiego źródła korzystasz). Media nigdy nie są przesyłane przez sudo-flix, wszystko odbywa się za pośrednictwem tego mechanizmu wyszukiwania.", + "title": "Skąd pochodzą treści?" + }, + "q2": { + "body": "Nie można złożyć wniosku o serialu ani filmu, sudo-flix nie zarządza żadną treścią. Wszystkie treści są przeglądane za pośrednictwem źródeł w Internecie.", + "title": "Gdzie mogę złożyć wniosek o seriale lub filmie?" + }, + "q3": { + "body": "Nasze wyniki wyszukiwania pochodzą z TMDB i są wyświetlane niezależnie od tego, czy nasze źródła faktycznie posiadają daną treść.", + "title": "W wyniku wyszukiwania wyświetlany jest serial lub film. Dlaczego nie mogę go odtworzyć?" + }, + "title": "O sudo-flix" + }, + "actions": { + "copied": "Skopiowano", + "copy": "Kopiuj" + }, + "auth": { + "createAccount": "Nie masz jeszcze konta? <0>Utwórz konto.", + "deviceNameLabel": "Nazwa urządzenia", + "deviceNamePlaceholder": "Telefon osobisty", + "generate": { + "description": "Twoja fraza hasła działa jak nazwa użytkownika i hasło. Pamiętaj aby zachować go w bezpiecznym miejscu, ponieważ będziesz musiał go wprowadzić aby zalogować się na swoje konto", + "next": "Zapisałem frazę hasła", + "passphraseFrameLabel": "Fraza hasła", + "title": "Twoja fraza hasła" + }, + "hasAccount": "Masz już konto? <0>Zaloguj się tutaj.", + "login": { + "description": "Proszę wpisać frazę hasła, aby zalogować się na swoje konto", + "deviceLengthError": "Proszę wpisać nazwę urządzenia", + "passphraseLabel": "12-wyrazowa fraza hasła", + "passphrasePlaceholder": "Fraza hasła", + "submit": "Zaloguj się", + "title": "Zaloguj się na swoje konto", + "validationError": "Nieprawidłowe lub niedokończone fraza hasła" + }, + "register": { + "information": { + "color1": "Kolor profilu jeden", + "color2": "Kolor profilu dwa", + "header": "Wpisz nazwę swojego urządzenia i wybierz kolory oraz ikonę użytkownika", + "icon": "Ikona użytkownika", + "next": "Dalej", + "title": "Informacje o koncie" + } + }, + "trust": { + "failed": { + "text": "Skonfigurowałeś to poprawnie?", + "title": "Nie udało się połączyć z serwerem" + }, + "host": "Łączysz się z <0>{{hostname}} - przed utworzeniem konta potwierdź że ufasz temu serwerowi", + "no": "Wstecz", + "title": "Ufasz temu serwerowi?", + "yes": "Ufam temu serwerowi" + }, + "verify": { + "description": "Wprowadź swoją frazę hasła, aby potwierdzić jego zapisanie i utworzyć konto", + "invalidData": "Dane są nieprawidłowe", + "noMatch": "Fraza hasła nie pasuje", + "passphraseLabel": "Twoja 12-wyrazowa fraza hasła", + "recaptchaFailed": "Weryfikacja ReCaptcha nie powiodła się", + "register": "Utwórz konto", + "title": "Potwierdź swoją frazę hasła" + } + }, + "errors": { + "badge": "Zepsuło się", + "details": "Szczegóły błędu", + "reloadPage": "Odśwież stronę", + "showError": "Pokaż szczegóły błędu", + "title": "Napotkaliśmy błąd!" + }, + "footer": { + "legal": { + "disclaimer": "Zastrzeżenie", + "disclaimerText": "sudo-flix nie przechowuje żadnych plików, zawiera jedynie łącza do usług stron trzecich. Kwestie prawne należy konsultować z hostami plików i dostawcami. sudo-flix nie ponosi odpowiedzialności za jakiekolwiek pliki multimedialne prezentowane przez dostawców wideo." + }, + "links": { + "discord": "Discord", + "dmca": "DMCA", + "github": "GitHub" + }, + "tagline": "Oglądaj swoje ulubione seriale i filmy za pomocą tej aplikacji streamingowej typu open source." + }, + "global": { + "name": "sudo-flix", + "pages": { + "about": "Informacje", + "dmca": "DMCA", + "login": "Zaloguj sie", + "onboarding": "Konfiguracja", + "pagetitle": "{{title}} - sudo-flix", + "register": "Zarejestruj się", + "settings": "Ustawienia" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "Zakładki" + }, + "continueWatching": { + "sectionTitle": "Kontynuuj oglądanie" + }, + "mediaList": { + "stopEditing": "Przestań edytować" + }, + "search": { + "allResults": "To wszystko co mamy!", + "failed": "Nie udało się znaleźć mediów, Spróbuj ponownie!", + "loading": "Wczytywanie...", + "noResults": "Nie mogliśmy niczego znaleźć!", + "placeholder": "Co chciałbyś obejrzeć?", + "sectionTitle": "Wyniki wyszukiwania" + }, + "titles": { + "day": { + "default": "Co chciałbyś obejrzeć dziś po południu?", + "extra": [ + "Masz ochotę na przygodę? Park Jurajski może być idealnym wyborem." + ] + }, + "morning": { + "default": "Co chciałbyś obejrzeć dziś rano?", + "extra": ["Słyszałem że „Przed wschodem słońca” jest dobre"] + }, + "night": { + "default": "Co chciałbyś obejrzeć dziś wieczorem?", + "extra": ["Zmęczony? Słyszałem że „Egzorcysta” jest dobry."] + } + } + }, + "media": { + "episodeDisplay": "S{{season}} E{{episode}}", + "types": { + "movie": "Film", + "show": "Serial" + } + }, + "navigation": { + "banner": { + "offline": "Sprawdź swoje połączenie sieciowe" + }, + "menu": { + "about": "O nas", + "donation": "Wspieraj nas", + "logout": "Wyloguj się", + "register": "Synchronizuj z chmurą", + "settings": "Ustawienia", + "support": "Wsparcie" + } + }, + "notFound": { + "badge": "Nie znaleziono", + "goHome": "Wróć na stronę główną", + "message": "Szukaliśmy wszędzie: w koszu, w szafie, a nawet w piwnicy, ale nie byliśmy w stanie znaleźć strony której szukasz.", + "title": "Nie można znaleźć tej strony" + }, + "onboarding": { + "defaultConfirm": { + "cancel": "Anuluj", + "confirm": "Użyj domyślnej konfiguracji", + "description": "Domyślna konfiguracja nie ma najlepszych strumieni i może być strasznie powolna.", + "title": "Jesteś pewien?" + }, + "extension": { + "back": "Wstecz", + "explainer": "Korzystając z rozszerzenia przeglądarki, możesz uzyskać najlepsze strumienie. Wystarczy prosta instalacja.", + "explainerIos": "Niestety, rozszerzenie przeglądarki nie jest obsługiwane w systemie iOS, naciśnij Wstecz, aby wybrać inną opcję.", + "extensionHelp": "Jeżeli zainstalowałeś rozszerzenie, ale nie zostało ono wykryte. Otwórz rozszerzenie za pomocą menu rozszerzeń przeglądarki i postępuj zgodnie z instrukcjami wyświetlanymi na ekranie.", + "linkChrome": "Zainstaluj rozszerzenie na Chrome", + "linkFirefox": "Zainstaluj rozszerzenie na Firefox", + "notDetecting": "Zainstalowano na Chrome, ale się nie wyświetla? Spróbuj odświeżyć stronę!", + "notDetectingAction": "Odśwież stronę", + "status": { + "disallowed": "Rozszerzenie nie jest włączone dla tej strony", + "disallowedAction": "Włącz rozszerzenie", + "failed": "Nie udało się uzyskać statusu", + "loading": "Oczekiwanie na instalację rozszerzenia", + "outdated": "Za stara wersja rozszerzenia", + "success": "Rozszerzenie działa tak jak powinno!" + }, + "submit": "Kontynuuj", + "title": "Zacznijmy od rozszerzenia" + }, + "proxy": { + "back": "Wstecz", + "explainer": "Za pomocą metody proxy można uzyskać strumienie o doskonałej jakości, tworząc samoobsługowy serwer proxy.", + "input": { + "errorConnection": "Nie można połączyć się z serwerem proxy", + "errorInvalidUrl": "Nieprawidłowy adres URL", + "errorNotProxy": "Spodziewano proxy, ale otrzymano stronę internetową", + "label": "Adres URL serwera proxy", + "placeholder": "https://" + }, + "link": "Dowiedz się, jak utworzyć proxy", + "submit": "Prześlij proxy", + "title": "Stwórzmy nowe proxy" + }, + "start": { + "explainer": "Aby uzyskać najlepsze transmisje strumieniowe. Będziesz musiał wybrać metodę strumieniowania, której chcesz użyć.", + "options": { + "default": { + "text": "Nie chcę dobrej jakości strumieni, <0 /> <1>użyj domyślnej konfiguracji" + }, + "extension": { + "action": "Zainstaluj rozszerzenie", + "description": "Zainstaluj rozszerzenie przeglądarki i uzyskaj dostęp do najlepszych źródeł.", + "quality": "Najlepsza jakość", + "title": "Rozszerzenie przeglądarki" + }, + "proxy": { + "action": "Skonfiguruj serwer proxy", + "description": "Skonfiguruj proxy w 5 minut i uzyskaj dostęp do świetnych źródeł.", + "quality": "Dobra jakość", + "title": "Niestandardowy serwer proxy" + } + }, + "title": "Przejdźmy do konfiguracji z sudo-flix" + } + }, + "overlays": { + "close": "Zamknij" + }, + "player": { + "back": { + "default": "Wróć na stronę główną", + "short": "Wróć" + }, + "casting": { + "enabled": "Przesyłam na urządzenie..." + }, + "menus": { + "downloads": { + "disclaimer": "Pliki do pobrania są pobierane bezpośrednio od dostawcy. sudo-flix nie ma kontroli nad sposobem dostarczania plików do pobrania.", + "downloadPlaylist": "Pobierz playlistę", + "downloadSubtitle": "Pobierz aktualne napisy", + "downloadVideo": "Pobierz wideo", + "hlsDisclaimer": "Pliki do pobrania są pobierane bezpośrednio od dostawcy. sudo-flix nie ma kontroli nad sposobem dostarczania plików do pobrania.

    Należy pamiętać, że pobierasz playlistę HLS, nie zaleca się pobierania, jeśli nie jesteś zaznajomiony z zaawansowanymi formatami przesyłania strumieniowego. Wypróbuj różne źródła dla innych formatów.", + "onAndroid": { + "1": "Aby pobrać na Androidzie, kliknij przycisk pobierania, a następnie na nowej stronie dotknij i przytrzymaj na filmie, a następnie wybierz zapisz.", + "shortTitle": "Pobierz / Android", + "title": "Pobieranie na Androidzie" + }, + "onIos": { + "1": "Aby pobrać na iOS, kliknij przycisk pobierania, a następnie na nowej stronie, kliknij , a następnie Zapisz do plików .", + "shortTitle": "Pobierz / iOS", + "title": "Pobieranie na iOS" + }, + "onPc": { + "1": "Na komputerze, kliknij przycisk pobierania, a następnie na nowej stronie, kliknij wideo prawym przyciskiem myszy i wybierz Zapisz wideo jako", + "shortTitle": "Pobierz / Komputer", + "title": "Pobieranie na komputerze" + }, + "title": "Pobierz" + }, + "episodes": { + "button": "Odcinki", + "emptyState": "Nie ma odcinków w tym sezonie, sprawdź później!", + "episodeBadge": "E{{episode}}", + "loadingError": "Błąd podczas ładowania sezonu", + "loadingList": "Wczytywanie...", + "loadingTitle": "Wczytywanie...", + "unairedEpisodes": "Jeden lub więcej odcinków tego sezonu zostało wyłączonych, ponieważ nie zostały jeszcze wyemitowane." + }, + "playback": { + "speedLabel": "Szybkość odtwarzania", + "title": "Ustawienia odtwarzania" + }, + "quality": { + "automaticLabel": "Jakość automatyczna", + "hint": "Możesz spróbować <0>przełączyć źródło aby uzyskać różne opcje jakości.", + "iosNoQuality": "Ze względu na ograniczenia zdefiniowane przez Apple, wybór jakości nie jest dostępny w systemie iOS dla tego źródła. Możesz spróbować <0>przełączyć na inne źródło aby uzyskać inne opcje jakości.", + "title": "Jakość" + }, + "settings": { + "downloadItem": "Pobierz", + "enableSubtitles": "Włącz napisy", + "experienceSection": "Odtwarzanie", + "playbackItem": "Ustawienia odtwarzania", + "qualityItem": "Jakość", + "sourceItem": "Źródła wideo", + "subtitleItem": "Ustawienia napisów", + "videoSection": "Ustawienia wideo" + }, + "sources": { + "failed": { + "text": "Wystąpił błąd podczas próby znalezienia filmów. Spróbuj użyć innego źródła.", + "title": "Nie udało się zgarnąć" + }, + "noEmbeds": { + "text": "Nie znaleźliśmy żadnych osadzonych plików. Spróbuj użyć innego źródła.", + "title": "Nie znaleziono osadzonych treści" + }, + "noStream": { + "text": "To źródło nie ma strumieni dla tego filmu lub serialu.", + "title": "Brak strumienia" + }, + "title": "Źródła", + "unknownOption": "Nieznany" + }, + "subtitles": { + "customChoice": "Wybierz napisy z pliku", + "customizeLabel": "Dostosuj", + "offChoice": "Wyłączone", + "settings": { + "backlink": "Własne napisy", + "delay": "Opóźnienie napisów", + "fixCapitals": "Popraw kapitalizację" + }, + "title": "Napisy", + "unknownLanguage": "Nieznany" + } + }, + "metadata": { + "api": { + "text": "Nie można załadować metadanych API, sprawdź połączenie internetowe.", + "title": "Nie udało się załadować metadanych API" + }, + "dmca": { + "badge": "Usunięte", + "text": "Ten materiał nie jest już dostępny z powodu żądania usunięcia lub roszczenia dotyczącego praw autorskich.", + "title": "Media zostały usunięte" + }, + "extensionPermission": { + "badge": "Brak uprawnień", + "button": "Użyj rozszerzenia", + "text": "Masz nasze rozszerzenie przeglądarki, ale potrzebujemy pozwolenia, aby zacząć z niego korzystać.", + "title": "Skonfiguruj rozszerzenie" + }, + "failed": { + "badge": "Nie powiodło się", + "homeButton": "Wróć na stronę główną", + "text": "Nie można załadować metadanych multimediów z TMDB. Sprawdź czy TMDB nie działa lub jest zablokowany na twoim połączeniu internetowym.", + "title": "Nie udało się załadować metadanych" + }, + "notFound": { + "badge": "Nie znaleziono", + "homeButton": "Wróć na stronę główną", + "text": "Nie znaleźliśmy żądanych multimediów. Albo został usunięty, albo zmieniłeś adres URL.", + "title": "Nie można znaleźć multimediów." + } + }, + "nextEpisode": { + "cancel": "Anuluj", + "next": "Następny odcinek" + }, + "playbackError": { + "badge": "Błąd odtwarzania", + "errors": { + "errorAborted": "Pobieranie multimediów zostało przerwane na żądanie użytkownika.", + "errorDecode": "Pomimo wcześniejszego stwierdzenia że zasób multimedialny nadaje się do użytku, wystąpił błąd podczas próby dekodowania zasobu multimedialnego, co spowodowało błąd.", + "errorGenericMedia": "Wystąpił nieznany błąd multimediów.", + "errorNetwork": "Wystąpił jakiś błąd sieciowy, który uniemożliwił pomyślne pobranie multimediów, mimo że były one wcześniej dostępne.", + "errorNotSupported": "Obiekt multimediów lub dostawcy multimediów nie jest obsługiwany." + }, + "homeButton": "Wróć na stronę główną", + "text": "Wystąpił błąd podczas próby odtworzenia multimediów. Spróbuj ponownie.", + "title": "Nie udało się odtworzyć wideo!" + }, + "scraping": { + "items": { + "failure": "Wystąpił błąd", + "notFound": "Nie ma wideo", + "pending": "Sprawdzanie filmów..." + }, + "notFound": { + "badge": "Nie znaleziono", + "detailsButton": "Pokaż szczegóły", + "homeButton": "Wróć na stronę główną", + "text": "Przeszukaliśmy naszych dostawców i nie możemy znaleźć poszukiwanych multimediów! Nie przechowujemy multimediów i nie mamy kontroli nad ich dostępnością. Kliknij \"Pokaż szczegóły\" poniżej, aby uzyskać więcej informacji.", + "title": "Nie mogliśmy znaleźć tego" + } + }, + "time": { + "regular": "{{timeWatched}} / {{duration}}", + "remaining": "Zostało {{timeLeft}} • Skończ o {{timeFinished, datetime}}", + "shortRegular": "{{timeWatched}}", + "shortRemaining": "-{{timeLeft}}" + }, + "turnstile": { + "description": "Proszę potwierdź że jesteś człowiekiem, wypełniając Captcha po prawej stronie. Ma to zapewnić bezpieczeństwo sudo-flix!", + "error": "Nie udało się zweryfikować Twojego człowieczeństwa. Proszę spróbuj ponownie.", + "title": "Musimy sprawdzić, czy jesteś człowiekiem.", + "verifyingHumanity": "Sprawdzasz swoje człowieczeństwo..." + } + }, + "screens": { + "dmca": { + "text": "Witamy na stronie kontaktowej DMCA serwisu sudo-flix! Szanujemy prawa własności intelektualnej i chcemy szybko rozwiązywać wszelkie problemy związane z prawami autorskimi. Jeśli uważasz że twoja praca chroniona prawem autorskim została niewłaściwie wykorzystana na naszej platformie, proszę wysłać szczegółowe powiadomienie DMCA na poniższy adres e-mail. Prosimy o dołączenie opisu materiału chronionego prawem autorskim, danych kontaktowych i oświadczenia w dobrej wierze. Zależy nam na szybkim rozwiązywaniu takich spraw i będziemy wdzięczni za współpracę w utrzymaniu sudo-flix jako miejsce w którym szanuje się kreatywność i prawa autorskie.", + "title": "DMCA" + }, + "loadingApp": "Wczytywanie aplikacji", + "loadingUser": "Wczytywanie profilu", + "loadingUserError": { + "logout": "Wyloguj się", + "reset": "Zresetuj serwer niestandardowy", + "text": "Nie udało się wczytać profilu", + "textWithReset": "Nie udało się wczytać profilu z niestandardowego serwera, chcesz powrócić do domyślnego serwera?" + }, + "migration": { + "failed": "Migracja danych nie powiodła się.", + "inProgress": "Proszę czekać, przeprowadzamy migrację danych. Nie powinno to zająć dużo czasu." + } + }, + "settings": { + "account": { + "accountDetails": { + "deviceNameLabel": "Nazwa urządzenia", + "deviceNamePlaceholder": "Telefon osobisty", + "editProfile": "Edytuj", + "logoutButton": "Wyloguj się" + }, + "actions": { + "delete": { + "button": "Usuń konto", + "confirmButton": "Usuń konto", + "confirmDescription": "Na pewno chcesz usunąć swoje konto? Wszystkie twoje dane zostaną stracone!", + "confirmTitle": "Jesteś pewny?", + "text": "Działanie to jest nieodwracalne. Wszystkie dane zostaną usunięte i nie będzie można ich odzyskać.", + "title": "Usuń konto" + }, + "title": "Działania" + }, + "devices": { + "deviceNameLabel": "Nazwa urządzenia", + "failed": "Nie udało się załadować sesji", + "removeDevice": "Usuń", + "title": "Urządzenia" + }, + "profile": { + "finish": "Zakończ edycję", + "firstColor": "Kolor profilu jeden", + "secondColor": "Kolor profilu dwa", + "title": "Edytuj zdjęcie profilowe", + "userIcon": "Ikona użytkownika" + }, + "register": { + "cta": "Rozpocznij", + "text": "Udostępnij postępy oglądania między urządzeniami i synchronizuj je.", + "title": "Synchronizuj z chmurą" + }, + "title": "Konto" + }, + "appearance": { + "activeTheme": "Aktywny", + "themes": { + "blue": "Niebieski", + "default": "Domyślny", + "gray": "Szary", + "red": "Czerwony", + "teal": "Morski" + }, + "title": "Wygląd" + }, + "connections": { + "server": { + "description": "Jeśli chcesz połączyć się z niestandardowym backendem w celu przechowywania danych, włącz tę opcję i podaj adres URL. <0>Instrukcje.", + "label": "Serwer niestandardowy", + "urlLabel": "Adres URL niestandardowego serwera" + }, + "setup": { + "doSetup": "Konfiguruj", + "errorStatus": { + "description": "Wygląda na to, że jeden lub więcej elementów tej konfiguracji wymaga Twojej uwagi.", + "title": "Coś wymaga twojej uwagi" + }, + "itemError": "Coś jest nie tak z tym ustawieniem. Ponownie przejdź przez konfigurację, aby to naprawić.", + "items": { + "default": "Domyślna konfiguracja", + "extension": "Rozszerzenie", + "proxy": "Niestandardowy serwer proxy" + }, + "redoSetup": "Ponów konfigurację", + "successStatus": { + "description": "Wszystko jest gotowe, abyś mógł zacząć oglądać ulubione media.", + "title": "Wszystko jest gotowe!" + }, + "unsetStatus": { + "description": "Kliknij przycisk po prawej stronie, aby rozpocząć proces konfiguracji.", + "title": "Nie przeszedłeś konfiguracji" + } + }, + "title": "Połączenia", + "workers": { + "addButton": "Dodaj nowego pracownika", + "description": "Aby aplikacja działała, cały ruch jest kierowany przez serwery proxy. Włącz tę opcję, jeśli chcesz korzystać z własnych pracowników. <0>Instrukcje.", + "emptyState": "Brak pracowników, dodaj jednego poniżej", + "label": "Używaj niestandardowych pracowników proxy", + "urlLabel": "Adresy URL pracowników", + "urlPlaceholder": "https://" + } + }, + "preferences": { + "language": "Język aplikacji", + "languageDescription": "Język zastosowany do całej aplikacji.", + "thumbnail": "Generuj miniatury", + "thumbnailDescription": "W większości przypadków filmy nie mają miniatur. Możesz włączyć to ustawienie, aby generować je na bieżąco, ale może to spowolnić wideo.", + "thumbnailLabel": "Generuj miniatury", + "title": "Preferencje" + }, + "reset": "Reset", + "save": "Zapisz", + "sidebar": { + "info": { + "appVersion": "Wersja aplikacji", + "backendUrl": "Adres URL backendu", + "backendVersion": "Wersja backendu", + "hostname": "Nazwa hosta", + "insecure": "Niebezpieczny", + "notLoggedIn": "Nie jesteś zalogowany", + "secure": "Bezpieczne", + "title": "Informacje o aplikacji", + "unknownVersion": "Nieznany", + "userId": "Identyfikator użytkownika" + } + }, + "subtitles": { + "backgroundLabel": "Krycie tła", + "colorLabel": "Kolor", + "previewQuote": "Nie wolno mi się bać. Strach zabija myślenie.", + "textSizeLabel": "Rozmiar czcionki", + "title": "Napisy" + }, + "unsaved": "Masz niezapisane zmiany" + } +} diff --git a/src/assets/locales/pt-BR.json b/src/assets/locales/pt-BR.json new file mode 100644 index 00000000..adc20539 --- /dev/null +++ b/src/assets/locales/pt-BR.json @@ -0,0 +1,491 @@ +{ + "about": { + "description": "sudo-flix é uma aplicação web que busca na internet por streams. A equipe visa uma abordagem principalmente minimalista para consumir conteúdo.", + "faqTitle": "Perguntas comuns", + "q1": { + "body": "sudo-flix não hospeda nenhum conteúdo. Quando você clica em algo para assistir, a internet é pesquisada pela mídia selecionada (Na tela de carregamento e na aba 'fontes de vídeo' você pode ver qual fonte está usando). A mídia nunca é carregada pelo sudo-flix, tudo é através deste mecanismo de busca.", + "title": "De onde vem o conteúdo?" + }, + "q2": { + "body": "Não é possível solicitar um filme ou série, o sudo-flix não gerencia nenhum conteúdo. Todo o conteúdo é visualizado através de fontes na internet.", + "title": "Onde posso solicitar um filme ou série?" + }, + "q3": { + "body": "Nossos resultados de pesquisa são alimentados pelo The Movie Database (TMDB) e são exibidos independentemente de nossas fontes terem ou não o conteúdo.", + "title": "Os resultados da pesquisa mostram o filme ou série, por que não consigo reproduzi-lo?" + }, + "title": "Sobre o sudo-flix" + }, + "actions": { + "copied": "Copiado", + "copy": "Copiar" + }, + "auth": { + "createAccount": "Ainda não tem uma conta? <0>Crie uma conta.", + "deviceNameLabel": "Nome do dispositivo", + "deviceNamePlaceholder": "Telefone pessoal", + "generate": { + "description": "Sua frase de acesso funciona como seu nome de usuário e senha. Certifique-se de mantê-la segura, pois você precisará inseri-la para entrar na sua conta", + "next": "Eu salvei minha frase de acesso", + "passphraseFrameLabel": "Frase de acesso", + "title": "Sua frase de acesso" + }, + "hasAccount": "Já tem uma conta? <0>Entre aqui.", + "login": { + "description": "Por favor, insira sua frase de acesso para entrar na sua conta", + "deviceLengthError": "Por favor, insira um nome para o dispositivo", + "passphraseLabel": "Frase de acesso de 12 palavras", + "passphrasePlaceholder": "Frase de acesso", + "submit": "Entrar", + "title": "Entrar na sua conta", + "validationError": "Frase de acesso incorreta ou incompleta" + }, + "register": { + "information": { + "color1": "Cor do perfil um", + "color2": "Cor do perfil dois", + "header": "Digite um nome para o seu dispositivo e escolha cores e um ícone de usuário de sua preferência", + "icon": "Ícone do usuário", + "next": "Próximo", + "title": "Informações da conta" + } + }, + "trust": { + "failed": { + "text": "Você o configurou corretamente?", + "title": "Falha ao alcançar o servidor" + }, + "host": "Você está se conectando a <0>{{hostname}} - por favor, confirme se confia nele antes de criar uma conta", + "no": "Voltar", + "title": "Você confia neste servidor?", + "yes": "Eu confio neste servidor" + }, + "verify": { + "description": "Por favor, insira sua frase de acesso anterior para confirmar que você a salvou e para criar sua conta", + "invalidData": "Dados não são válidos", + "noMatch": "Frase de acesso não corresponde", + "passphraseLabel": "Sua frase de acesso de 12 palavras", + "recaptchaFailed": "Falha na validação do ReCaptcha", + "register": "Criar conta", + "title": "Confirme sua frase de acesso" + } + }, + "errors": { + "badge": "Quebrou", + "details": "Detalhes do erro", + "reloadPage": "Recarregar a página", + "showError": "Mostrar detalhes do erro", + "title": "Encontramos um erro!" + }, + "footer": { + "legal": { + "disclaimer": "Aviso legal", + "disclaimerText": "sudo-flix não hospeda nenhum arquivo, apenas fornece links para serviços de terceiros. Questões legais devem ser tratadas com os hosts de arquivos e provedores. sudo-flix não é responsável por quaisquer arquivos de mídia exibidos pelos provedores de vídeo." + }, + "links": { + "discord": "Discord", + "dmca": "DMCA", + "github": "GitHub" + }, + "tagline": "Assista seus programas e filmes favoritos com este aplicativo de streaming de código aberto." + }, + "global": { + "name": "sudo-flix", + "pages": { + "about": "Sobre", + "dmca": "DMCA", + "login": "Entrar", + "pagetitle": "{{title}} - sudo-flix", + "register": "Registrar", + "settings": "Configurações" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "Favoritos" + }, + "continueWatching": { + "sectionTitle": "Continue assistindo" + }, + "mediaList": { + "stopEditing": "Parar de editar" + }, + "search": { + "allResults": "Isso é tudo que temos!", + "failed": "Falha ao encontrar mídia, tente novamente!", + "loading": "Carregando...", + "noResults": "Não conseguimos encontrar nada!", + "placeholder": "O que você quer assistir?", + "sectionTitle": "Resultados da pesquisa" + }, + "titles": { + "day": { + "default": "O que você gostaria de assistir esta tarde?", + "extra": [ + "Se sentindo aventureiro? Jurassic Park pode ser a escolha perfeita." + ] + }, + "morning": { + "default": "O que você gostaria de assistir esta manhã?", + "extra": ["Ouvi dizer que Antes do Amanhecer é bom"] + }, + "night": { + "default": "O que você gostaria de assistir esta noite?", + "extra": ["Cansado? Ouvi dizer que O Exorcista é bom."] + } + } + }, + "media": { + "episodeDisplay": "T{{season}} E{{episode}}", + "types": { + "movie": "Filme", + "show": "Série" + } + }, + "navigation": { + "banner": { + "offline": "Verifique sua conexão com a internet" + }, + "menu": { + "about": "Sobre nós", + "donation": "Doar", + "logout": "Sair", + "register": "Sincronizar com a nuvem", + "settings": "Configurações", + "support": "Suporte" + } + }, + "notFound": { + "badge": "Não encontrado", + "goHome": "Voltar para o início", + "message": "Procuramos em todos os lugares: debaixo das lixeiras, no armário, atrás do proxy, mas no final não conseguimos encontrar a página que você está procurando.", + "title": "Não conseguimos encontrar essa página" + }, + "onboarding": { + "start": { + "explainer": "Para obter os melhores streams possíveis. Você precisará escolher qual método de streaming deseja usar.", + "options": { + "default": { + "text": "Eu não quero streams de boa qualidade, <0 /> <1>use a configuração padrão" + }, + "extension": { + "action": "Instalar extensão", + "description": "Instale a extensão de navegador e tenha acesso às melhores fontes.", + "quality": "Melhor qualidade", + "title": "Extensão de navegador" + }, + "proxy": { + "action": "Configurar proxy", + "description": "Configure um proxy em apenas 5 minutos e tenha acesso a ótimas fontes.", + "quality": "Boa qualidade", + "title": "Proxy personalizado" + } + }, + "title": "Vamos juntos configurar o sudo-flix" + } + }, + "overlays": { + "close": "Fechar" + }, + "player": { + "back": { + "default": "Voltar para o início", + "short": "Voltar" + }, + "casting": { + "enabled": "Transmitindo para o dispositivo..." + }, + "menus": { + "downloads": { + "disclaimer": "Os downloads são feitos diretamente do provedor. sudo-flix não tem controle sobre como os downloads são fornecidos.", + "downloadPlaylist": "Baixar playlist", + "downloadSubtitle": "Baixar legenda atual", + "downloadVideo": "Baixar vídeo", + "hlsDisclaimer": "Os downloads são feitos diretamente do provedor. sudo-flix não tem controle sobre como os downloads são fornecidos.

    Por favor, note que você está baixando uma playlist HLS, isso é destinado para usuários familiarizados com streaming multimídia avançado.. Experimente outras fontes para formatos diferentes.", + "onAndroid": { + "1": "Para baixar no Android, clique no botão de download e, na nova página, toque e segure no vídeo, depois selecione salvar.", + "shortTitle": "Baixar / Android", + "title": "Baixando no Android" + }, + "onIos": { + "1": "Para baixar no iOS, clique no botão de download e, na nova página, clique em , depois em Salvar em Arquivos .", + "shortTitle": "Baixar / iOS", + "title": "Baixando no iOS" + }, + "onPc": { + "1": "No PC, clique no botão de download e, na nova página, clique com o botão direito do mouse no vídeo e selecione Salvar vídeo como", + "shortTitle": "Baixar / PC", + "title": "Baixando no PC" + }, + "title": "Baixar" + }, + "episodes": { + "button": "Episódios", + "emptyState": "Não há episódios nesta temporada, volte mais tarde!", + "episodeBadge": "E{{episode}}", + "loadingError": "Erro ao carregar temporada", + "loadingList": "Carregando...", + "loadingTitle": "Carregando...", + "unairedEpisodes": "Um ou mais episódios nesta temporada foram desabilitados porque ainda não foram ao ar." + }, + "playback": { + "speedLabel": "Velocidade de reprodução", + "title": "Configurações de reprodução" + }, + "quality": { + "automaticLabel": "Qualidade automática", + "hint": "Você pode tentar <0>trocar de fonte para obter diferentes opções de qualidade.", + "iosNoQuality": "Devido a limitações definidas pela Apple, a seleção de qualidade não está disponível no iOS para esta fonte. Você pode tentar <0>trocar para outra fonte para obter diferentes opções de qualidade.", + "title": "Qualidade" + }, + "settings": { + "downloadItem": "Baixar", + "enableSubtitles": "Ativar Legendas", + "experienceSection": "Experiência de visualização", + "playbackItem": "Configurações de reprodução", + "qualityItem": "Qualidade", + "sourceItem": "Fontes de vídeo", + "subtitleItem": "Configurações de legenda", + "videoSection": "Configurações de vídeo" + }, + "sources": { + "failed": { + "text": "Houve um erro ao tentar encontrar vídeos, por favor, tente uma fonte diferente.", + "title": "Falha ao raspar" + }, + "noEmbeds": { + "text": "Não conseguimos encontrar nenhum incorporado, por favor, tente uma fonte diferente.", + "title": "Nenhum incorporado encontrado" + }, + "noStream": { + "text": "Esta fonte não tem transmissões para este filme ou série.", + "title": "Sem transmissão" + }, + "title": "Fontes", + "unknownOption": "Desconhecido" + }, + "subtitles": { + "customChoice": "Selecione arquivo de legenda", + "customizeLabel": "Personalizar", + "offChoice": "Desativadas", + "settings": { + "backlink": "Legendas personalizadas", + "delay": "Atraso da legenda", + "fixCapitals": "Corrigir letras maiúsculas" + }, + "title": "Legendas", + "unknownLanguage": "Desconhecido" + } + }, + "metadata": { + "api": { + "text": "Não foi possível carregar os metadados da API. Por favor, verifique sua conexão com a internet.", + "title": "Falha ao carregar os metadados da API" + }, + "dmca": { + "badge": "Removido", + "text": "Esta mídia não está mais disponível devido a um aviso de remoção ou reivindicação de direitos autorais.", + "title": "A mídia foi removida" + }, + "extensionPermission": { + "button": "Usar extensão", + "text": "Você possui a extensão de navegador, mas nós precisamos de sua permissão para começar a usá-la.", + "title": "Configure a extensão" + }, + "failed": { + "badge": "Falhou", + "homeButton": "Ir para o início", + "text": "Não foi possível carregar os metadados da mídia do TMDB. Por favor, verifique se o TMDB está fora do ar ou bloqueado na sua conexão de internet.", + "title": "Falha ao carregar metadados" + }, + "notFound": { + "badge": "Não encontrado", + "homeButton": "Voltar para o início", + "text": "Não conseguimos encontrar a mídia que você solicitou. Ou ela foi removida ou você alterou o URL.", + "title": "Não conseguimos encontrar essa mídia." + } + }, + "nextEpisode": { + "cancel": "Cancelar", + "next": "Próximo episódio" + }, + "playbackError": { + "badge": "Erro de reprodução", + "errors": { + "errorAborted": "A busca pela mídia foi abortada a pedido do usuário.", + "errorDecode": "Apesar de ter sido previamente determinado como utilizável, ocorreu um erro ao tentar decodificar o recurso de mídia, resultando em um erro.", + "errorGenericMedia": "Ocorreu um erro desconhecido de mídia.", + "errorNetwork": "Ocorreu algum tipo de erro de rede que impediu a mídia de ser buscada com sucesso, apesar de ter sido previamente disponível.", + "errorNotSupported": "A mídia ou objeto do provedor de mídia não é suportado." + }, + "homeButton": "Ir para o início", + "text": "Houve um erro ao tentar reproduzir a mídia. Por favor, tente novamente.", + "title": "Falha ao reproduzir o vídeo!" + }, + "scraping": { + "items": { + "failure": "Ocorreu um erro", + "notFound": "Não tem o vídeo", + "pending": "Verificando vídeos..." + }, + "notFound": { + "badge": "Não encontrado", + "detailsButton": "Mostrar detalhes", + "homeButton": "Ir para o início", + "text": "Procuramos em nossos provedores e não conseguimos encontrar a mídia que você está procurando! Não hospedamos a mídia e não temos controle sobre o que está disponível. Por favor, clique em 'Mostrar detalhes' abaixo para mais informações.", + "title": "Não conseguimos encontrar isso" + } + }, + "time": { + "regular": "{{timeWatched}} / {{duration}}", + "remaining": "{{timeLeft}} restantes • Terminar às {{timeFinished, datetime}}", + "shortRegular": "{{timeWatched}}", + "shortRemaining": "-{{timeLeft}}" + }, + "turnstile": { + "description": "Por favor, confirme que você é um humano completando o Captcha à direita. Isso é para manter sudo-flix seguro!", + "error": "Falha ao verificar sua humanidade. Por favor, tente novamente.", + "title": "Precisamos verificar se você é humano.", + "verifyingHumanity": "Verificando sua humanidade..." + } + }, + "screens": { + "dmca": { + "text": "Bem-vindo à página de contato do DMCA do sudo-flix! Respeitamos os direitos de propriedade intelectual e queremos resolver quaisquer preocupações com direitos autorais rapidamente. Se você acredita que seu trabalho protegido por direitos autorais foi usado indevidamente em nossa plataforma, envie um aviso detalhado de DMCA para o e-mail abaixo. Inclua uma descrição do material protegido por direitos autorais, seus detalhes de contato e uma declaração de crença de boa fé. Estamos comprometidos em resolver essas questões prontamente e agradecemos sua cooperação em manter o sudo-flix um lugar que respeita a criatividade e os direitos autorais.", + "title": "DMCA" + }, + "loadingApp": "Carregando aplicativo", + "loadingUser": "Carregando seu perfil", + "loadingUserError": { + "logout": "Sair", + "reset": "Redefinir servidor personalizado", + "text": "Falha ao carregar seu perfil", + "textWithReset": "Falha ao carregar seu perfil do seu servidor personalizado, deseja redefinir para o servidor padrão?" + }, + "migration": { + "failed": "Falha ao migrar seus dados.", + "inProgress": "Por favor, aguarde, estamos migrando seus dados. Isso não deve demorar muito." + } + }, + "settings": { + "account": { + "accountDetails": { + "deviceNameLabel": "Nome do dispositivo", + "deviceNamePlaceholder": "Telefone pessoal", + "editProfile": "Editar", + "logoutButton": "Sair" + }, + "actions": { + "delete": { + "button": "Excluir conta", + "confirmButton": "Excluir conta", + "confirmDescription": "Você tem certeza de que deseja excluir sua conta? Todos os seus dados serão perdidos!", + "confirmTitle": "Você tem certeza?", + "text": "Esta ação é irreversível. Todos os dados serão excluídos e nada poderá ser recuperado.", + "title": "Excluir conta" + }, + "title": "Ações" + }, + "devices": { + "deviceNameLabel": "Nome do dispositivo", + "failed": "Falha ao carregar sessões", + "removeDevice": "Remover", + "title": "Dispositivos" + }, + "profile": { + "finish": "Finalizar edição", + "firstColor": "Cor do perfil um", + "secondColor": "Cor do perfil dois", + "title": "Editar foto de perfil", + "userIcon": "Ícone do usuário" + }, + "register": { + "cta": "Começar", + "text": "Compartilhe seu progresso de visualização entre dispositivos e mantenha-os sincronizados.", + "title": "Sincronizar com a nuvem" + }, + "title": "Conta" + }, + "appearance": { + "activeTheme": "Ativo", + "themes": { + "blue": "Azul", + "default": "Padrão", + "gray": "Cinza", + "red": "Vermelho", + "teal": "Verde-azulado" + }, + "title": "Aparência" + }, + "connections": { + "server": { + "description": "Se você deseja se conectar a um backend personalizado para armazenar seus dados, ative isso e forneça a URL. <0>Instruções.", + "label": "Servidor personalizado", + "urlLabel": "URL do servidor personalizado" + }, + "setup": { + "doSetup": "Configurar", + "errorStatus": { + "description": "Parece que um ou mais itens nesta configuração necessitam sua atenção.", + "title": "Algo necessita de sua atenção" + }, + "itemError": "Há algo errado com esta configuração. Realize uma nova configuração para corrigir.", + "items": { + "default": "Configuração padrão", + "extension": "Extensão", + "proxy": "Proxy personalizado" + }, + "redoSetup": "Refazer configuração", + "successStatus": { + "description": "Tudo está pronto para você começar a assistir sua mídia favorita.", + "title": "Está tudo pronto!" + }, + "unsetStatus": { + "description": "Por favor, clique no botão à direita para iniciar a configuração.", + "title": "Você não realizou a configuração" + } + }, + "title": "Conexões", + "workers": { + "addButton": "Adicionar novo worker", + "description": "Para fazer o aplicativo funcionar, todo o tráfego é roteado através de proxies. Ative isso se você quiser trazer seus próprios workers. <0>Instruções.", + "emptyState": "Ainda não há workers, adicione um abaixo", + "label": "Usar proxy workers personalizados", + "urlLabel": "URLs dos workers", + "urlPlaceholder": "https://" + } + }, + "preferences": { + "language": "Idioma do aplicativo", + "languageDescription": "Idioma aplicado para todo o aplicativo.", + "thumbnail": "Gerar miniaturas", + "thumbnailDescription": "Na maior parte do tempo, os vídeos não possuem miniaturas. Você pode ativar esta configuração para gerá-las dinamicamente, mas elas podem tornar seu vídeo mais lento.", + "thumbnailLabel": "Gerar miniaturas", + "title": "Preferências" + }, + "reset": "Redefinir", + "save": "Salvar", + "sidebar": { + "info": { + "appVersion": "Versão do aplicativo", + "backendUrl": "URL do backend", + "backendVersion": "Versão do backend", + "hostname": "Nome do host", + "insecure": "Inseguro", + "notLoggedIn": "Você não está logado", + "secure": "Seguro", + "title": "Informações do aplicativo", + "unknownVersion": "Desconhecido", + "userId": "ID do usuário" + } + }, + "subtitles": { + "backgroundLabel": "Opacidade do fundo", + "colorLabel": "Cor", + "previewQuote": "Eu não devo ter medo. Medo é o assassino da mente.", + "textSizeLabel": "Tamanho do texto", + "title": "Legendas" + }, + "unsaved": "Você tem alterações não salvas" + } +} diff --git a/src/assets/locales/pt-PT.json b/src/assets/locales/pt-PT.json new file mode 100644 index 00000000..4a121433 --- /dev/null +++ b/src/assets/locales/pt-PT.json @@ -0,0 +1,428 @@ +{ + "about": { + "description": "sudo-flix é uma aplicação web que pesquisa a internet por streams. A equipa visa uma abordagem maioritariamente minimalista na consumação de conteúdos.", + "faqTitle": "Perguntas frequentes", + "q1": { + "body": "sudo-flix não hospeda nenhum conteúdo. Quando clica para assistir a algo, a internet é pesquisada para o media selecionado (Na tela de carregamento e na aba 'fontes de vídeo', pode ver qual a fonte que está a ser utilizada). O media nunca é carregado pelo sudo-flix, tudo é feito através deste mecanismo de pesquisa.", + "title": "De onde vem o conteúdo?" + }, + "q2": { + "body": "Não é possível solicitar um programa ou filme, o sudo-flix não gere nenhum conteúdo. Todo o conteúdo é visualizado através de fontes na internet.", + "title": "Onde posso solicitar um programa ou filme?" + }, + "q3": { + "body": "Os nossos resultados de pesquisa são alimentados pela The Movie Database (TMDB) e são exibidos independentemente de as nossas fontes realmente terem o conteúdo.", + "title": "Os resultados da pesquisa mostram o programa ou filme, por que não consigo reproduzi-lo?" + }, + "title": "Sobre o sudo-flix" + }, + "actions": { + "copied": "Copiado", + "copy": "Copiar" + }, + "auth": { + "createAccount": "Ainda não tem uma conta? <0>Crie uma conta.", + "deviceNameLabel": "Nome do dispositivo", + "deviceNamePlaceholder": "Telemóvel pessoal", + "generate": { + "description": "A sua frase-passe age como o seu nome de utilizador e senha. Certifique-se de a manter segura, pois precisará dela para entrar na sua conta", + "next": "Guardei a minha frase-passe", + "passphraseFrameLabel": "Frase-passe", + "title": "A sua frase-passe" + }, + "hasAccount": "Já tem uma conta? <0>Entre aqui.", + "login": { + "description": "Por favor, introduza a sua frase-passe para entrar na sua conta", + "deviceLengthError": "Por favor, introduza um nome de dispositivo", + "passphraseLabel": "Frase-passe de 12 palavras", + "passphrasePlaceholder": "Frase-passe", + "submit": "Entrar", + "title": "Entrar na sua conta", + "validationError": "Frase-passe incorreta ou incompleta" + }, + "register": { + "information": { + "color1": "Cor de perfil um", + "color2": "Cor de perfil dois", + "header": "Introduza um nome para o seu dispositivo e escolha cores e um ícone de utilizador da sua escolha", + "icon": "Ícone de utilizador", + "next": "Próximo", + "title": "Informações da conta" + } + }, + "trust": { + "failed": { + "text": "Configurou corretamente?", + "title": "Falha ao conectar-se ao servidor" + }, + "host": "Está a conectar-se a <0>{{hostname}} - confirme se confia antes de criar uma conta", + "no": "Voltar", + "title": "Confia neste servidor?", + "yes": "Confio neste servidor" + }, + "verify": { + "description": "Por favor, introduza a sua frase-passe anterior para confirmar que a guardou e para criar a sua conta", + "invalidData": "Dados inválidos", + "noMatch": "A frase-passe não coincide", + "passphraseLabel": "A sua frase-passe de 12 palavras", + "recaptchaFailed": "Falha na validação do ReCaptcha", + "register": "Criar conta", + "title": "Confirmar a sua frase-passe" + } + }, + "errors": { + "badge": "Houve um erro", + "details": "Detalhes do erro", + "reloadPage": "Recarregar a página", + "showError": "Mostrar detalhes do erro", + "title": "Encontrámos um erro!" + }, + "footer": { + "legal": { + "disclaimer": "Aviso legal", + "disclaimerText": "sudo-flix não hospeda quaisquer ficheiros, apenas faz ligações para serviços de terceiros. Problemas legais devem ser tratados com os anfitriões e fornecedores de ficheiros. O sudo-flix não é responsável por quaisquer ficheiros multimédia mostrados pelos fornecedores de vídeo." + }, + "links": { + "discord": "Discord", + "dmca": "DMCA", + "github": "GitHub" + }, + "tagline": "Assista aos seus programas e filmes favoritos com esta aplicação de streaming de código aberto." + }, + "global": { + "name": "sudo-flix", + "pages": { + "about": "Sobre", + "dmca": "DMCA", + "login": "Entrar", + "pagetitle": "{{title}} - sudo-flix", + "register": "Registrar", + "settings": "Configurações" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "Marcadores" + }, + "continueWatching": { + "sectionTitle": "Continuar a assistir" + }, + "mediaList": { + "stopEditing": "Parar de editar" + }, + "search": { + "allResults": "É tudo o que temos!", + "failed": "Falha ao encontrar mídia, tente novamente!", + "loading": "A carregar...", + "noResults": "Não conseguimos encontrar nada!", + "placeholder": "O que deseja assistir?", + "sectionTitle": "Resultados da pesquisa" + }, + "titles": { + "day": { + "default": "O que gostaria de assistir esta tarde?", + "extra": [ + "Sentindo-se aventureiro? Jurassic Park pode ser a escolha perfeita." + ] + }, + "morning": { + "default": "O que gostaria de assistir esta manhã?", + "extra": ["Dizem que Antes do Amanhecer é bom"] + }, + "night": { + "default": "O que gostaria de assistir esta noite?", + "extra": ["Cansado? Dizem que O Exorcista é bom."] + } + } + }, + "media": { + "episodeDisplay": "T{{season}} E{{episode}}", + "types": { + "movie": "Filme", + "show": "Série" + } + }, + "navigation": { + "banner": { + "offline": "Verifique a sua conexão à internet" + }, + "menu": { + "about": "Sobre nós", + "donation": "Doar", + "logout": "Sair", + "register": "Sincronizar com a nuvem", + "settings": "Configurações", + "support": "Suporte" + } + }, + "notFound": { + "badge": "Não encontrado", + "goHome": "Voltar para casa", + "message": "Procurámos em todo lugar: embaixo dos caixotes, no armário, atrás do proxy, mas, no final, não conseguimos encontrar a página que procura.", + "title": "Não foi possível encontrar essa página" + }, + "overlays": { + "close": "Fechar" + }, + "player": { + "back": { + "default": "Voltar para casa", + "short": "Voltar" + }, + "casting": { + "enabled": "Transmitindo para o dispositivo..." + }, + "menus": { + "downloads": { + "disclaimer": "Os downloads são feitos diretamente pelo fornecedor. O sudo-flix não tem controle sobre como os downloads são fornecidos.", + "downloadPlaylist": "Baixar lista de reprodução", + "downloadSubtitle": "Baixar legenda atual", + "downloadVideo": "Baixar vídeo", + "hlsDisclaimer": "Os downloads são feitos diretamente pelo fornecedor. O sudo-flix não tem controle sobre como os downloads são fornecidos. Por favor, note que está a baixar uma lista de reprodução HLS, isso é destinado a utilizadores familiarizados com streaming multimídia avançado.", + "onAndroid": { + "1": "Para baixar no Android, clique no botão de download e, na nova página, toque e segure no vídeo, depois selecione guardar.", + "shortTitle": "Baixar / Android", + "title": "Baixando no Android" + }, + "onIos": { + "1": "Para baixar no iOS, clique no botão de download e, na nova página, clique em , depois em Guardar no Ficheiro .", + "shortTitle": "Baixar / iOS", + "title": "Baixando no iOS" + }, + "onPc": { + "1": "No PC, clique no botão de download e, na nova página, clique com o botão direito no vídeo e selecione Guardar vídeo como", + "shortTitle": "Baixar / PC", + "title": "Baixando no PC" + }, + "title": "Baixar" + }, + "episodes": { + "button": "Episódios", + "emptyState": "Não há episódios nesta temporada, volte mais tarde!", + "episodeBadge": "E{{episode}}", + "loadingError": "Erro ao carregar a temporada", + "loadingList": "A carregar...", + "loadingTitle": "A carregar...", + "unairedEpisodes": "Um ou mais episódios nesta temporada foram desativados porque ainda não foram transmitidos." + }, + "playback": { + "speedLabel": "Velocidade de reprodução", + "title": "Configurações de reprodução" + }, + "quality": { + "automaticLabel": "Qualidade automática", + "hint": "Pode tentar <0>mudar de fonte para obter opções de qualidade diferentes.", + "iosNoQuality": "Devido a limitações definidas pela Apple, a seleção de qualidade não está disponível no iOS para esta fonte. Pode tentar <0>mudar para outra fonte para obter opções de qualidade diferentes.", + "title": "Qualidade" + }, + "settings": { + "downloadItem": "Download", + "enableSubtitles": "Ativar legendas", + "experienceSection": "Experiência de visualização", + "playbackItem": "Configurações de reprodução", + "qualityItem": "Qualidade", + "sourceItem": "Fontes de vídeo", + "subtitleItem": "Configurações de legendas", + "videoSection": "Configurações de vídeo" + }, + "sources": { + "failed": { + "text": "Houve um erro ao tentar encontrar vídeos, por favor, tente uma fonte diferente.", + "title": "Falha ao obter" + }, + "noEmbeds": { + "text": "Não conseguimos encontrar nenhum embed, por favor, tente uma fonte diferente.", + "title": "Nenhum embed encontrado" + }, + "noStream": { + "text": "Esta fonte não tem transmissões para este filme ou série.", + "title": "Sem transmissão" + }, + "title": "Fontes", + "unknownOption": "Desconhecido" + }, + "subtitles": { + "customChoice": "Selecionar legenda do arquivo", + "customizeLabel": "Personalizar", + "offChoice": "Desativar", + "settings": { + "backlink": "Legendas personalizadas", + "delay": "Atraso das legendas", + "fixCapitals": "Corrigir maiúsculas" + }, + "title": "Legendas", + "unknownLanguage": "Desconhecido" + } + }, + "metadata": { + "api": { + "text": "Não foi possível carregar os metadados da API, por favor verifique a sua conexão à internet.", + "title": "Falha ao carregar os metadados da API" + }, + "failed": { + "badge": "Falhou", + "homeButton": "Ir para casa", + "text": "Não foi possível carregar os metadados do media da TMDB. Por favor, verifique se a TMDB está indisponível ou bloqueada na sua conexão à internet.", + "title": "Falha ao carregar os metadados" + }, + "notFound": { + "badge": "Não encontrado", + "homeButton": "Voltar para casa", + "text": "Não conseguimos encontrar o conteúdo que solicitou. Ou foi removido ou houve manipulação na URL.", + "title": "Não foi possível encontrar esse conteúdo." + } + }, + "nextEpisode": { + "cancel": "Cancelar", + "next": "Próximo episódio" + }, + "playbackError": { + "badge": "Erro de reprodução", + "errors": { + "errorAborted": "A recuperação do conteúdo foi cancelada a pedido do utilizador.", + "errorDecode": "Apesar de ter sido anteriormente considerado utilizável, ocorreu um erro ao tentar decodificar o recurso multimédia, resultando em um erro.", + "errorGenericMedia": "Ocorreu um erro desconhecido no multimédia.", + "errorNetwork": "Ocorreu algum tipo de erro de rede que impediu a recuperação bem-sucedida do multimédia, apesar de estar disponível anteriormente.", + "errorNotSupported": "O objeto multimédia ou do fornecedor de multimédia não é suportado." + }, + "homeButton": "Ir para casa", + "text": "Ocorreu um erro ao tentar reproduzir o conteúdo multimédia. Por favor, tente novamente.", + "title": "Falha ao reproduzir o vídeo!" + }, + "scraping": { + "items": { + "failure": "Ocorreu um erro", + "notFound": "Não possui o vídeo", + "pending": "A verificar vídeos..." + }, + "notFound": { + "badge": "Não encontrado", + "detailsButton": "Mostrar detalhes", + "homeButton": "Ir para casa", + "text": "Pesquisámos pelos nossos fornecedores e não conseguimos encontrar o conteúdo que procura! Não alojamos o conteúdo multimédia e não temos controlo sobre o que está disponível. Por favor, clique em 'Mostrar detalhes' abaixo para mais informações.", + "title": "Não conseguimos encontrar isso" + } + }, + "time": { + "regular": "{{timeWatched}} / {{duration}}", + "remaining": "{{timeLeft}} restantes • Termina às {{timeFinished, datetime}}", + "shortRegular": "{{timeWatched}}", + "shortRemaining": "-{{timeLeft}}" + }, + "turnstile": { + "description": "Por favor, verifique que é humano completando o Captcha à direita. Isso é para manter o sudo-flix seguro!", + "error": "Falha ao verificar a sua humanidade. Por favor, tente novamente.", + "title": "Precisamos verificar que você é humano.", + "verifyingHumanity": "Verificando a sua humanidade..." + } + }, + "screens": { + "dmca": { + "text": "Bem-vindo à página de contacto DMCA da sudo-flix! Respeitamos os direitos de propriedade intelectual e queremos resolver rapidamente quaisquer preocupações de direitos autorais. Se acredita que a sua obra protegida por direitos autorais foi usada indevidamente na nossa plataforma, envie um aviso DMCA detalhado para o email abaixo. Inclua uma descrição do material protegido por direitos autorais, os seus detalhes de contacto e uma declaração de boa fé. Comprometemo-nos a resolver essas questões prontamente e agradecemos a sua cooperação para manter a sudo-flix como um lugar que respeita a criatividade e os direitos autorais.", + "title": "DMCA" + }, + "loadingApp": "A carregar a aplicação", + "loadingUser": "A carregar o seu perfil", + "loadingUserError": { + "logout": "Terminar sessão", + "reset": "Repor servidor personalizado", + "text": "Falha ao carregar o seu perfil", + "textWithReset": "Falha ao carregar o seu perfil do servidor personalizado. Deseja repor para o servidor padrão?" + }, + "migration": { + "failed": "Falha ao migrar os seus dados.", + "inProgress": "Por favor aguarde, estamos a migrar os seus dados. Isto não deverá demorar muito." + } + }, + "settings": { + "account": { + "accountDetails": { + "deviceNameLabel": "Nome do dispositivo", + "deviceNamePlaceholder": "Telemóvel pessoal", + "editProfile": "Editar", + "logoutButton": "Terminar sessão" + }, + "actions": { + "delete": { + "button": "Eliminar conta", + "confirmButton": "Eliminar conta", + "confirmDescription": "Tem a certeza de que deseja eliminar a sua conta? Todos os seus dados serão perdidos!", + "confirmTitle": "Tem a certeza?", + "text": "Esta ação é irreversível. Todos os dados serão eliminados e nada poderá ser recuperado.", + "title": "Eliminar conta" + }, + "title": "Ações" + }, + "devices": { + "deviceNameLabel": "Nome do dispositivo", + "failed": "Falha ao carregar as sessões", + "removeDevice": "Remover", + "title": "Dispositivos" + }, + "profile": { + "finish": "Terminar edição", + "firstColor": "Cor do perfil um", + "secondColor": "Cor do perfil dois", + "title": "Editar imagem de perfil", + "userIcon": "Ícone de utilizador" + }, + "register": { + "cta": "Começar", + "text": "Partilhe o seu progresso de visualização entre dispositivos e mantenha-os sincronizados.", + "title": "Sincronizar com a nuvem" + }, + "title": "Conta" + }, + "appearance": { + "activeTheme": "Ativo", + "themes": { + "blue": "Azul", + "default": "Padrão", + "gray": "Cinzento", + "red": "Vermelho", + "teal": "Verde-azulado" + }, + "title": "Aparência" + }, + "connections": { + "server": { + "description": "Se desejar ligar a um servidor personalizado para armazenar os seus dados, ative isto e forneça o URL.", + "label": "Servidor personalizado", + "urlLabel": "URL do servidor personalizado" + }, + "title": "Conexões", + "workers": { + "addButton": "Adicionar novo trabalhador", + "description": "Para que a aplicação funcione, todo o tráfego é encaminhado através de proxies. Ative isto se quiser utilizar os seus próprios trabalhadores.", + "emptyState": "Ainda não há trabalhadores, adicione um abaixo", + "label": "Utilizar trabalhadores de proxy personalizados", + "urlLabel": "URLs do trabalhador", + "urlPlaceholder": "https://" + } + }, + "reset": "Repor", + "save": "Guardar", + "sidebar": { + "info": { + "appVersion": "Versão da aplicação", + "backendUrl": "URL do backend", + "backendVersion": "Versão do backend", + "hostname": "Hostname", + "insecure": "Inseguro", + "notLoggedIn": "Não está autenticado", + "secure": "Seguro", + "title": "Informações da aplicação", + "unknownVersion": "Desconhecida", + "userId": "ID de utilizador" + } + }, + "subtitles": { + "backgroundLabel": "Opacidade do fundo", + "colorLabel": "Cor", + "previewQuote": "Não devo temer. O medo é o assassino da mente.", + "textSizeLabel": "Tamanho do texto", + "title": "Legendas" + }, + "unsaved": "Tem alterações não guardadas" + } +} diff --git a/src/assets/locales/ro.json b/src/assets/locales/ro.json new file mode 100644 index 00000000..d26c986c --- /dev/null +++ b/src/assets/locales/ro.json @@ -0,0 +1,444 @@ +{ + "about": { + "description": "sudo-flix este o aplicație web care caută fluxuri pe internet. Echipa urmărește o abordare mai ales minimalistă a consumului de conținut.", + "faqTitle": "Întrebări obișnuite", + "q1": { + "body": "sudo-flix nu găzduiește niciun conținut. Când faceți clic pe ceva pentru a viziona, pe Internet este căutat media selectată (Pe ecranul de încărcare și în fila „Surse video”, puteți vedea ce sursă utilizați). Media nu este niciodată încărcată de sudo-flix, totul se face prin acest mecanism de căutare.", + "title": "De unde vine conținutul?" + }, + "q2": { + "body": "Nu este posibil să solicitați o emisiune sau un film, sudo-flix nu gestionează niciun conținut. Tot conținutul este vizualizat prin surse de internet.", + "title": "Unde pot solicita o emisiune sau un film?" + }, + "q3": { + "body": "Rezultatele căutării noastre sunt furnizate de The Movie Database (TMDB) și afișați indiferent dacă sursele noastre au de fapt conținutul.", + "title": "Rezultatele căutării afișează emisiunea sau filmul, de ce nu îl pot reda?" + }, + "title": "Despre sudo-flix" + }, + "actions": { + "copied": "Copiat", + "copy": "Copiați" + }, + "auth": { + "createAccount": "Nu aveți încă un cont? <0>Creați un cont.", + "deviceNameLabel": "Nume dispozitiv", + "deviceNamePlaceholder": "Telefon personal", + "generate": { + "description": "Fraza de acces acționează ca nume de utilizator și parolă. Asigurați-vă că îl păstrați în siguranță, deoarece va trebui să îl introduceți pentru a vă conecta la contul dvs", + "next": "Mi-am salvat fraza de acces", + "passphraseFrameLabel": "Frază de acces", + "title": "Fraza dvs. de acces" + }, + "hasAccount": "ai deja un cont? <0>Autentificați-vă aici.", + "login": { + "description": "Vă rugăm să introduceți fraza de acces pentru a vă conecta la contul dvs", + "deviceLengthError": "Introduceți un nume de dispozitiv", + "passphraseLabel": "Expresie de acces din 12 cuvinte", + "passphrasePlaceholder": "Frază de acces", + "submit": "Conectează te", + "title": "conecteaza-te la contul tau", + "validationError": "Fraza de acces este incorectă sau incompletă" + }, + "register": { + "information": { + "color1": "Culoarea profilului unu", + "color2": "Culoarea profilului doi", + "header": "Introduceți un nume pentru dispozitivul dvs. și alegeți culorile și o pictogramă de utilizator la alegerea dvs", + "icon": "Pictograma utilizatorului", + "next": "Următorul", + "title": "Informații despre cont" + } + }, + "trust": { + "failed": { + "text": "L-ai configurat corect?", + "title": "Nu s-a putut ajunge la server" + }, + "host": "Vă conectați la <0>{{hostname}} - vă rugăm să confirmați că aveți încredere înainte de a vă crea un cont", + "no": "Întoarce-te", + "title": "Ai încredere în acest server?", + "yes": "Am încredere în acest server" + }, + "verify": { + "description": "Introduceți expresia de acces de mai devreme pentru a confirma că ați salvat-o și pentru a vă crea contul", + "invalidData": "Datele nu sunt valide", + "noMatch": "Fraza de acces nu se potrivește", + "passphraseLabel": "Fraza dvs. de acces de 12 cuvinte", + "recaptchaFailed": "Validarea ReCaptcha a eșuat", + "register": "Creează cont", + "title": "Confirmați-vă fraza de acces" + } + }, + "errors": { + "badge": "S-a spart", + "details": "Detalii despre eroare", + "reloadPage": "Reîncărcați pagina", + "showError": "Afișați detalii despre eroare", + "title": "Am intampinat o eroare!" + }, + "footer": { + "legal": { + "disclaimer": "Disclaimer", + "disclaimerText": "sudo-flix nu găzduiește niciun fișier, ci doar trimite la servicii terțe. Problemele juridice ar trebui abordate cu gazdele și furnizorii de fișiere. sudo-flix nu este responsabil pentru niciun fișier media afișat de furnizorii de video." + }, + "links": { + "discord": "Discord", + "dmca": "DMCA", + "github": "GitHub" + }, + "tagline": "Urmăriți emisiunile și filmele preferate cu această aplicație de streaming open source." + }, + "global": { + "name": "sudo-flix", + "pages": { + "about": "Despre", + "dmca": "DMCA", + "login": "Log in", + "pagetitle": "{{title}} - sudo-flix", + "register": "Inregistreaza-te", + "settings": "Setări" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "Marcaje" + }, + "continueWatching": { + "sectionTitle": "Continuați vizionarea" + }, + "mediaList": { + "stopEditing": "Opriți editarea" + }, + "search": { + "allResults": "Asta e tot ce avem!", + "failed": "Găsire media eșuată, încearcă din nou!", + "loading": "Se încarcă...", + "noResults": "Nu am putut găsi nimic!", + "placeholder": "La ce dorești să te uiți?", + "sectionTitle": "Rezultate de căutare" + }, + "titles": { + "day": { + "default": "La ce vrei să te uiți după-amiaza asta?", + "extra": [ + "Te simți aventuros? Jurassic Park ar putea fi o alegere perfectă." + ] + }, + "morning": { + "default": "La ce dorești să te in uiți dimineață aceasta?", + "extra": ["Aud că Before Sunrise este bun"] + }, + "night": { + "default": "La ce dorești să te uiți în astă seară?", + "extra": ["Obosit? Aud că The Exorcist is good."] + } + } + }, + "media": { + "episodeDisplay": "S{{season}} E{{episode}}", + "types": { + "movie": "Film", + "show": "Spectacol" + } + }, + "navigation": { + "banner": { + "offline": "Verificați-vă conexiunea de internet" + }, + "menu": { + "about": "Despre noi", + "donation": "Donează", + "logout": "Deconectați-vă", + "register": "Sincronizare în cloud", + "settings": "Setări", + "support": "Ajutor" + } + }, + "notFound": { + "badge": "Nu a fost găsit", + "goHome": "Înapoi acasă", + "message": "Ne-am uitat peste tot: sub pubele, în dulap, În spatele proxy-ului dar din păcate nu am găsit pagina pe care dumneavoastră o căutați.", + "title": "N-am putut găsi pagina" + }, + "overlays": { + "close": "Închide" + }, + "player": { + "back": { + "default": "Înapoi acasă", + "short": "Înapoi" + }, + "casting": { + "enabled": "Casting pe dispozitiv..." + }, + "menus": { + "downloads": { + "disclaimer": "Descărcările sunt luate direct de la furnizor. sudo-flix nu are control cum descărcările sunt furnizate.", + "downloadPlaylist": "Descarcă lista de redare", + "downloadSubtitle": "Descărcați subtitlul curente", + "downloadVideo": "Descarcă video", + "hlsDisclaimer": "Descărcările sunt preluate direct de la furnizor. sudo-flix nu are control asupra modului în care sunt furnizate descărcările. Vă rugăm să rețineți că descărcați o listă de redare HLS, aceasta este destinată utilizatorilor familiar cu streamingul avansat.", + "onAndroid": { + "1": "Pentru a descărca pe android, apăsați butonul de descărcare apoi în pagina nouă,apăsați și țineți pe video, apoi selectați salvează.", + "shortTitle": "Descărcare / Android", + "title": "Descărcare pe Android" + }, + "onIos": { + "1": "Pentru a instala pe iOS, apăsați butonul de instalare apoi în pagina nouă apăsați , apoi Salvează in File .", + "shortTitle": "Descărcare / iOS", + "title": "Descărcare pe iOS" + }, + "onPc": { + "1": "Pe calculator, apăsați butonul de descărcare apoi în pagina nouă, apăsați click drept pe video și selectați Salvați videoul ca", + "shortTitle": "Descarcă / Calculator", + "title": "Descărcare pe calculator" + }, + "title": "Descarcă" + }, + "episodes": { + "button": "Episoade", + "emptyState": "Nu sunt episoade in sezonul acesta, reveniți mai târziu!", + "episodeBadge": "E{{episode}}", + "loadingError": "Eroare la încărcarea sezonul", + "loadingList": "Se încarcă...", + "loadingTitle": "Se încarcă...", + "unairedEpisodes": "Unul sau mai multe episoade din sezonul acesta sunt indisponibile deoarece incă nu au venit încă." + }, + "playback": { + "speedLabel": "Viteză de redare", + "title": "Setările de redare" + }, + "quality": { + "automaticLabel": "Calitate automată", + "hint": "Puteți încerca <0>Schimbarea sursei pentru a primi opțiuni de calitate diferită.", + "iosNoQuality": "Din cauza limitărilor definite de Apple, selecția calității nu este disponibilă pe iOS pentru această sursă. Puteți încerca să <0>treceți la altă sursă pentru a obține diferite opțiuni de calitate.", + "title": "Calitate" + }, + "settings": { + "downloadItem": "Descarcă", + "enableSubtitles": "Activează subtitlurile", + "experienceSection": "Experiență de vizionare", + "playbackItem": "Setări de redare", + "qualityItem": "Calitate", + "sourceItem": "Surse video", + "subtitleItem": "Setările subtitlului", + "videoSection": "Setări video" + }, + "sources": { + "failed": { + "text": "Aici a fost o eroare încercând să găsim video, încercați o altă sursă.", + "title": "Nu s-a răzuit" + }, + "noEmbeds": { + "text": "Nu am putut găsi nicio incorporare, vă rog să încercați o altă sursă.", + "title": "Nu a fost găsită nicio încorporare" + }, + "noStream": { + "text": "Sursa asta nu are nicio sursă de streaming pentru filmul său spectacolul.", + "title": "Niciun stream" + }, + "title": "Surse", + "unknownOption": "Necunoscut" + }, + "subtitles": { + "customChoice": "Selectați subtitlul din filă", + "customizeLabel": "Costumizează", + "offChoice": "Oprit", + "settings": { + "backlink": "Subtitluri personalizate", + "delay": "Intârziera subtitlurilor", + "fixCapitals": "Fixați capitalizația" + }, + "title": "Subtitluri", + "unknownLanguage": "Necunoscut" + } + }, + "metadata": { + "api": { + "text": "Metadatele API nu au putut fi încărcate, vă rugăm să vă verificați conexiunea la internet.", + "title": "Nu s-a putut incărca API metadata" + }, + "dmca": { + "badge": "Șters", + "text": "Această medie nu mai este valabilă din vina copyright-ului.", + "title": "Media a fost ștearsă" + }, + "extensionPermission": { + "badge": "Permisune pierdută", + "button": "Folosește extensia", + "text": "Tu ai extensia, dar noi avem nevoie de permisiune ca să începem să folosim extensia.", + "title": "Configurează extensia" + }, + "failed": { + "badge": "Eșuat", + "homeButton": "Du-te acasă :)", + "text": "Nu s-au putut încărca metadatele media din TMDB. Vă rugăm să verificați dacă TMDB este oprit sau blocat pe conexiunea ta. la internet.", + "title": "Nu s-au încărcat metadatele" + }, + "notFound": { + "badge": "Nu a fost găsit", + "homeButton": "Înapoi acasă :)", + "text": "Nu am putut găsi media pe care ați cerut-o. Poate este ștearsă sau ați manipulat adresa URL.", + "title": "Nu am putut găsi acel media." + } + }, + "nextEpisode": { + "cancel": "Anulare", + "next": "Episodul următor" + }, + "playbackError": { + "badge": "Eroare la redare", + "errors": { + "errorAborted": "Preluarea media a fost întreruptă la cererea utilizatorului.", + "errorDecode": "În ciuda faptului că anterior a fost determinată a fi utilizabilă, a apărut o eroare în timpul încercării de a decoda resursa media, rezultând o eroare.", + "errorGenericMedia": "Eroare media cumva sa întâmplat.", + "errorNetwork": "A apărut o eroare de rețea care a împiedicat preluarea cu succes a suportului media, în ciuda faptului că fusese disponibil anterior.", + "errorNotSupported": "Obiectul media sau furnizorul media nu este acceptat." + }, + "homeButton": "Du-te acasă :)", + "text": "A apărut o eroare la încercarea de a reda media. Vă rugăm să încercați din nou.", + "title": "O eroare la redarea videoului!" + }, + "scraping": { + "items": { + "failure": "Sa întâmplat o eraore", + "notFound": "Nu are acel video", + "pending": "Verificând pentru videouri..." + }, + "notFound": { + "badge": "Nu a fost găsit", + "detailsButton": "Arată detalii", + "homeButton": "Du-te acasă", + "text": "Am căutat prin furnizorii noștri și nu putem găsi media pe care o căutați! Nu găzduim mass-media și nu avem control asupra a ceea ce este disponibil. Vă rugăm să faceți clic pe „Afișați detalii” de mai jos pentru mai multe detalii.", + "title": "Nu am putut găsi aia" + } + }, + "time": { + "regular": "{{timeWatched}} / {{duration}}", + "remaining": "{{timeLeft}} rămas • Se termină la{{timeFinished, datetime}}", + "shortRegular": "{{timeWatched}}", + "shortRemaining": "-{{timeLeft}}" + }, + "turnstile": { + "description": "Vă rog să vă verificați umanitatea completând acest captcha in partea dreapta. Asta este pentru a pastra sudo-flix sigur!", + "error": "Verificarea umanității tale a eșuat. Încercați din nou.", + "title": "Noi trebuie să verificăm dacă sunteți un om.", + "verifyingHumanity": "Verificați-vă umanitatea voastră..." + } + }, + "screens": { + "dmca": { + "text": "Bun venit pe pagina de contact DMCA a sudo-flix! Respectăm drepturile de proprietate intelectuală și dorim să abordăm rapid orice problemă privind drepturile de autor. Dacă credeți că lucrarea dumneavoastră protejată prin drepturi de autor a fost utilizată necorespunzător pe platforma noastră, vă rugăm să trimiteți o notificare detaliată DMCA la e-mailul de mai jos. Vă rugăm să includeți o descriere a materialului protejat prin drepturi de autor, detaliile dvs. de contact și o declarație de bună credință. Ne angajăm să rezolvăm aceste probleme cu promptitudine și apreciem cooperarea dumneavoastră pentru a menține sudo-flix un loc care respectă creativitatea și drepturile de autor.", + "title": "DMCA" + }, + "loadingApp": "Se încarcă aplicația", + "loadingUser": "Se încarcă profilul tău", + "loadingUserError": { + "logout": "Deconectare", + "reset": "Resetare servere personalizate", + "text": "Nu s-a încărcat profilul dvs", + "textWithReset": "Nu s-a încărcat profilul dvs. de pe serverul personalizat, doriți să reveniți la serverul implicit?" + }, + "migration": { + "failed": "Eroare la migrarea datelor voastre.", + "inProgress": "Vă rugăm să așteptați, migrăm datele dvs. Acest lucru nu ar trebui să dureze mult." + } + }, + "settings": { + "account": { + "accountDetails": { + "deviceNameLabel": "Numele dispozitivului", + "deviceNamePlaceholder": "Telefonul personal", + "editProfile": "Editează", + "logoutButton": "Deconectați-vă" + }, + "actions": { + "delete": { + "button": "Șterge contul", + "confirmButton": "Șterge contul", + "confirmDescription": "Ești sigur că vrei să ștergi contul tău? Toate datele tale vor dispărea!", + "confirmTitle": "Ești sigur?", + "text": "Acțiunea asta este ireversibilă. Toate datele tale vor dispărea și nimic nu va putea fi recuperat.", + "title": "Șterge contul" + }, + "title": "Acțiuni" + }, + "devices": { + "deviceNameLabel": "Numele dispozitivului", + "failed": "Eroare la încărcarea sesiunii", + "removeDevice": "Șterge", + "title": "Dispozitive" + }, + "profile": { + "finish": "Termină editarea", + "firstColor": "Culoarea profilului unu", + "secondColor": "Culoare profilului doi", + "title": "Editează poza de profil", + "userIcon": "Iconița utilizatorului" + }, + "register": { + "cta": "Începeți", + "text": "Partajați progresul vizionării între dispozitive și păstrați-le sincronizate.", + "title": "Sincronizare în cloud" + }, + "title": "Cont" + }, + "appearance": { + "activeTheme": "Activ", + "themes": { + "blue": "Albastru", + "default": "Implicit", + "gray": "Gri", + "red": "Roșu", + "teal": "Albastru verziu" + }, + "title": "Aparență" + }, + "connections": { + "server": { + "description": "Dacă doriți să vă conectați la un backend personalizat pentru a vă stoca datele, activați acest lucru și furnizați adresa URL.", + "label": "Server personalizat", + "urlLabel": "Adresa URL personalizată a serverului" + }, + "setup": { + "errorStatus": { + "title": "Ceva are nevoie de atenția ta" + } + }, + "title": "Conexiuni", + "workers": { + "addButton": "Adaugă un nou muncitor", + "description": "Pentru ca aplicația să funcționeze, tot traficul este direcționat prin proxy. Activați acest lucru dacă doriți să vă aduceți proprii lucrători.", + "emptyState": "Niciun muncitor incă, adaugă unu", + "label": "Utilizați lucrători proxy personalizați", + "urlLabel": "Adresele URL ale lucrătorilor", + "urlPlaceholder": "https://" + } + }, + "reset": "Resetare", + "save": "Salvează", + "sidebar": { + "info": { + "appVersion": "Versiunea aplicației", + "backendUrl": "URL de backend", + "backendVersion": "Versiunea backend", + "hostname": "Numele gazdei", + "insecure": "Nesigur", + "notLoggedIn": "Nu sunteți autentificat", + "secure": "Securizat", + "title": "Informația aplicației", + "unknownVersion": "Necunoscut", + "userId": "ID-ul utilizatorului" + } + }, + "subtitles": { + "backgroundLabel": "Opacitatea fundalului", + "colorLabel": "Culoare", + "previewQuote": "nu trebuie să mă tem. Frica este ucigașul minții.", + "textSizeLabel": "Dimensiunea textului", + "title": "Subtitluri" + }, + "unsaved": "Aveți modificări nesalvate" + } +} diff --git a/src/assets/locales/ru.json b/src/assets/locales/ru.json new file mode 100644 index 00000000..1bb1f7d6 --- /dev/null +++ b/src/assets/locales/ru.json @@ -0,0 +1,315 @@ +{ + "about": { + "description": "sudo-flix - это веб-приложение, которое ищет в интернете потоки. Команда стремится к минималистичному подходу к потреблению контента.", + "faqTitle": "Общие вопросы", + "q1": { + "body": "sudo-flix не размещает у себя никакого контента. Когда вы нажимаете на что-то для просмотра, в интернете происходит поиск выбранного медиа файла (на экране загрузки и во вкладке \"Видео источники\" вы можете увидеть, какой источник вы используете). Медиа файлы никогда не загружается на sudo-flix, все происходит через этот механизм поиска.", + "title": "Откуда берётся контент?" + }, + "q2": { + "body": "Невозможно запросить сериал или фильм, sudo-flix не управляет никаким контентом. Весь контент просматривается через источники в интернете.", + "title": "Где я могу запросить показ сериала или фильма?" + }, + "q3": { + "body": "Наши результаты поиска основаны на базе данных The Movie Database (TMDB) и отображаются вне зависимости от того, есть ли в наших источниках соответствующий контент.", + "title": "В результатах поиска отображается сериал или фильм, но почему я не могу воспроизвести его?" + }, + "title": "О sudo-flix" + }, + "actions": { + "copied": "Скопировано", + "copy": "Копировать" + }, + "auth": { + "createAccount": "У вас ещё нет аккаунта? <0>Создайте учётную запись.", + "deviceNameLabel": "Имя устройства", + "deviceNamePlaceholder": "Личный телефон", + "generate": { + "description": "Твоя фраза работает как твой пароль и имя. Сделай чтобы она была в защите чтобы ты смог зайти снова в аккаунт", + "next": "Я сохранил мою фразу", + "passphraseFrameLabel": "Фраза", + "title": "Твоя фраза" + }, + "hasAccount": "У вас уже есть аккаунт? <0>Войдите здесь.", + "login": { + "description": "Пожалуйста напишите вашу фразу чтобы зайти в аккаунт", + "deviceLengthError": "Введите имя устройства", + "passphraseLabel": "12-словная парольная фраза", + "passphrasePlaceholder": "Фраза", + "submit": "Авторизоваться", + "title": "Войдите в свой аккаунт", + "validationError": "Неверная или неполная парольная фраза" + }, + "register": { + "information": { + "color1": "Цвет профиля один", + "color2": "Цвет профиля два", + "header": "Введите название устройства, выберите цвета и значок пользователя по своему усмотрению", + "icon": "Значок пользователя", + "next": "Далее", + "title": "Информация об аккаунте" + } + }, + "trust": { + "failed": { + "text": "Ты её конфигурировал правильно?", + "title": "Не удалось связаться с сервером" + }, + "host": "Вы подключаетесь к <0>{{hostname}} - пожалуйста, подтвердите, что вы доверяете ему, прежде чем создавать учётную запись", + "no": "Вернуться назад", + "title": "Доверяете ли вы этому серверу?", + "yes": "Я доверяю этому серверу" + }, + "verify": { + "description": "Пожалуйста, введите фразу, полученную ранее, чтобы подтвердить, что вы ее сохранили, и создать свой аккаунт", + "invalidData": "Дата инвалидная", + "noMatch": "Парольная фраза не совпадает", + "passphraseLabel": "Ваша 12-словная парольная фраза", + "recaptchaFailed": "Проверка ReCaptcha не удалась", + "register": "Создать учётную запись", + "title": "Подтвердите парольную фразу" + } + }, + "errors": { + "details": "Подробности ошибки", + "reloadPage": "Перезагрузить страницу", + "showError": "Показать сведения об ошибке", + "title": "Мы столкнулись с ошибкой!" + }, + "footer": { + "legal": { + "disclaimer": "Отказ от ответственности", + "disclaimerText": "sudo-flix не размещает никаких файлов, а лишь предоставляет ссылки на сторонние сервисы. Юридические вопросы следует решать с владельцами файлов и поставщиками услуг. sudo-flix не несёт ответственности за любые медиа файлы, показанные поставщиками видео." + }, + "links": { + "discord": "Discord", + "dmca": "DMCA", + "github": "GitHub" + }, + "tagline": "Смотрите любимые сериалы и фильмы с помощью этого приложения для потокового вещания с открытым исходным кодом." + }, + "global": { + "name": "sudo-flix", + "pages": { + "about": "О", + "dmca": "DMCA", + "pagetitle": "{{title}} - sudo-flix", + "settings": "Настройки" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "Закладки" + }, + "continueWatching": { + "sectionTitle": "Продолжить просмотр" + }, + "mediaList": { + "stopEditing": "Завершить редактирование" + }, + "search": { + "allResults": "Это все, что у нас есть!", + "loading": "Загрузка...", + "sectionTitle": "Результаты поиска" + } + }, + "media": { + "episodeDisplay": "С{{season}} Э{{episode}}", + "types": { + "movie": "Фильм", + "show": "Сериал" + } + }, + "navigation": { + "banner": { + "offline": "Проверьте подключение к Интернету" + }, + "menu": { + "about": "О нас", + "donation": "Пожертвовать", + "logout": "Выйти", + "settings": "Настройки", + "support": "Поддержка" + } + }, + "notFound": { + "title": "Не удалось найти эту страницу" + }, + "overlays": { + "close": "Закрыть" + }, + "player": { + "back": { + "default": "Вернуться на главную" + }, + "menus": { + "downloads": { + "downloadSubtitle": "Скачать текущие субтитры", + "title": "Скачать" + }, + "episodes": { + "button": "Эпизоды", + "emptyState": "В этом сезоне нет ни одной серии, загляните позже!", + "episodeBadge": "Э{{episode}}", + "loadingError": "Ошибка при загрузке сезона", + "loadingList": "Загрузка...", + "loadingTitle": "Загрузка..." + }, + "playback": { + "speedLabel": "Скорость воспроизведения", + "title": "Настройки воспроизведения" + }, + "quality": { + "automaticLabel": "Автоматическое качество" + }, + "settings": { + "downloadItem": "Скачать", + "enableSubtitles": "Включить субтитры", + "playbackItem": "Настройки воспроизведения", + "qualityItem": "Качество", + "sourceItem": "Видео источники", + "subtitleItem": "Настройки субтитров", + "videoSection": "Настройки видео" + }, + "sources": { + "failed": { + "text": "При попытке найти видео произошла ошибка, пожалуйста, попробуйте использовать другой источник." + }, + "noEmbeds": { + "text": "Мы не смогли найти ни одной вставки, пожалуйста, попробуйте использовать другой источник.", + "title": "Не найдено ни одной вставки" + }, + "noStream": { + "text": "В этом источнике нет потоков для этого фильма или сериала.", + "title": "Нет потока" + }, + "title": "Источники", + "unknownOption": "Неизвестный" + }, + "subtitles": { + "customChoice": "Выбрать субтитры из файла", + "offChoice": "Выключить", + "settings": { + "backlink": "Пользовательские субтитры" + }, + "title": "Субтитры" + } + }, + "nextEpisode": { + "cancel": "Отмена", + "next": "След. эпизод" + }, + "playbackError": { + "badge": "Ошибка воспроизведения", + "errors": { + "errorDecode": "Несмотря на то, что ранее этот медиаресурс был пригодным для использования, при попытке его декодирования произошла ошибка." + }, + "text": "При попытке воспроизвести медиа файл произошла ошибка. Пожалуйста, попробуйте ещё раз.", + "title": "Не удалось воспроизвести видео!" + }, + "scraping": { + "notFound": { + "detailsButton": "Показать детали", + "title": "Мы не смогли найти" + } + }, + "time": { + "regular": "{{timeWatched}} / {{duration}}" + } + }, + "screens": { + "dmca": { + "title": "DMCA" + } + }, + "settings": { + "account": { + "accountDetails": { + "deviceNameLabel": "Имя устройства", + "editProfile": "Редактировать", + "logoutButton": "Выйти" + }, + "actions": { + "delete": { + "button": "Удалить аккаунт", + "confirmButton": "Удалить аккаунт", + "confirmDescription": "Вы уверены, что хотите удалить свой аккаунт? Все ваши данные будут потеряны!", + "confirmTitle": "Вы уверены?", + "text": "Это действие необратимо. Все данные будут удалены, и восстановить их будет невозможно.", + "title": "Удалить аккаунт" + }, + "title": "Действия" + }, + "devices": { + "deviceNameLabel": "Имя устройства", + "failed": "Не удалось загрузить сеансы", + "removeDevice": "Удалить", + "title": "Устройства" + }, + "profile": { + "finish": "Завершить редактирование", + "firstColor": "Цвет профиля один", + "secondColor": "Цвет профиля два", + "title": "Редактирование изображения профиля", + "userIcon": "Значок пользователя" + }, + "register": { + "cta": "Начать", + "text": "Обменивайтесь информацией о прогрессе часов между устройствами и синхронизируйте их.", + "title": "Синхронизировать с облаком" + }, + "title": "Аккаунт" + }, + "appearance": { + "activeTheme": "Активная", + "themes": { + "blue": "Cиний", + "default": "Стандартный", + "gray": "Серый", + "red": "Красный", + "teal": "Бирюзовый" + }, + "title": "Внешний вид" + }, + "connections": { + "server": { + "description": "Если вы хотите подключиться к пользовательскому серверу для хранения ваших данных, включите эту опцию и укажите URL.", + "label": "Пользовательский сервер", + "urlLabel": "URL-адрес пользовательского сервера" + }, + "title": "Соединения", + "workers": { + "addButton": "Добавить новый прокси-сервер", + "description": "Для работы приложения весь трафик маршрутизируется через прокси. Включите это, если вы хотите использовать свои собственных прокси-серверы.", + "emptyState": "Прокси отсутствуют, добавьте их ниже", + "label": "Использовать прокси-сервера", + "urlLabel": "URL-адреса", + "urlPlaceholder": "https://" + } + }, + "reset": "Сброс", + "save": "Сохранить", + "sidebar": { + "info": { + "appVersion": "Версия приложения", + "backendUrl": "Внутренний URL-адрес", + "backendVersion": "Серверная версия", + "hostname": "Имя хоста", + "insecure": "Небезопасно", + "notLoggedIn": "Вы не авторизованы", + "secure": "Безопасный", + "title": "Информация о приложении", + "unknownVersion": "Неизвестный", + "userId": "ID пользователя" + } + }, + "subtitles": { + "backgroundLabel": "Прозрачность фона", + "colorLabel": "Цвет", + "previewQuote": "Я не должен бояться. Страх — убийца разума.", + "textSizeLabel": "Размер текста", + "title": "Субтитры" + }, + "unsaved": "У вас есть несохраненные изменения" + } +} diff --git a/src/assets/locales/sl.json b/src/assets/locales/sl.json new file mode 100644 index 00000000..e2c94b96 --- /dev/null +++ b/src/assets/locales/sl.json @@ -0,0 +1,419 @@ +{ + "about": { + "description": "sudo-flix je spletna aplikacija, ki omogoča enostavno iskanje filmov in serij. Ekipa si prizadeva za minimalističen pristop pri ogledu vsebin.", + "faqTitle": "Pogosto zastavljena vprašanja", + "q1": { + "body": "sudo-flix ne hrani nobene vsebine. Ko si želite film ali serijo ogledati, se izvede iskanje vsebine na internetu (na zaslonu za nalaganje in v zavihku \"viri videa\" lahko vidite, kateri vir uporabljate). Vsebina medija se nikoli ne naloži na strežnike sudo-flixa, ker vse poteka iskalnega mehanizma.", + "title": "Od kod prihaja vsebina?" + }, + "q2": { + "body": "Serije in filmov ni mogoče zahtevati, ker sudo-flix ne upravlja z nobeno vsebino. Vse vsebine si lahko ogledate prek virov na internetu.", + "title": "Kje lahko oddam predlog za serijo ali film?" + }, + "q3": { + "body": "Rezultati iskanja so privzeti iz podatkovne baze \"The Movie Database\" (TMDB) in se prikazujejo ne glede na to, ali je vsebina dejansko na voljo.", + "title": "Rezultati iskanja prikazujejo serijo oz. film, zakaj ga potem ne morem predvajati?" + }, + "title": "O sudo-flixbu" + }, + "actions": { + "copied": "Kopirano", + "copy": "Kopiraj" + }, + "auth": { + "createAccount": "Še nimate računa? <0>Ustvari račun.", + "deviceNameLabel": "Ime naprave", + "deviceNamePlaceholder": "Mobilni telefon", + "generate": { + "description": "Vaša fraza deluje kot vaše uporabniško ime in geslo. Shranite ga na varnem mestu, saj ga boste morali vnesti za prijavo v svoj račun", + "next": "Frazo sem shranil na varno mesto", + "passphraseFrameLabel": "Varnostna fraza", + "title": "Varnostna Fraza" + }, + "hasAccount": "Že imate račun?<0>Prijavi se tukaj.", + "login": { + "description": "Vnesite frazo za prijavo v račun", + "deviceLengthError": "Vnesi ime naprave", + "passphraseLabel": "12-besedna varnostna fraza", + "passphrasePlaceholder": "Varnostna fraza", + "submit": "Prijava", + "title": "Prijava v račun", + "validationError": "Nepravilna ali nepopolna varnostna fraza" + }, + "register": { + "information": { + "color1": "Barva prvega profila", + "color2": "Barva drugega profila", + "header": "Vnesite ime za napravo ter izberi barvo in ikono uporabnika", + "icon": "Ikona uporabnika", + "next": "Naprej", + "title": "Informacije o profilu" + } + }, + "trust": { + "failed": { + "text": "Ali ste pravilno konfigurirali nastavitve?", + "title": "Neuspešen dostop do strežnika" + }, + "host": "Povezujete se z <0>{{hostname}} - pred ustvarjanjem računa potrdite, da mu zaupate", + "no": "Nazaj", + "title": "Ali zaupate temu strežniku?", + "yes": "Zaupam strežniku" + }, + "verify": { + "description": "Vnesite varnostno frazo, ki ste ga uporabili prej, da potrdite varno hrambo, in ustvarite svoj račun", + "invalidData": "Vnešeni podatki niso pravilni", + "noMatch": "Varnostna fraza se ne ujema", + "passphraseLabel": "Vaša 12-besedna varnostna fraza", + "recaptchaFailed": "Preizkus ReCaptcha ni uspel", + "register": "Ustvari Račun", + "title": "Potrdite varnostno frazo" + } + }, + "errors": { + "badge": "Nekaj se je pokvarilo", + "details": "Podatki o napaki", + "reloadPage": "Osveži stran", + "showError": "Pokaži informacije o napaki", + "title": "Prišlo je do napake!" + }, + "footer": { + "legal": { + "disclaimer": "Opozorilo", + "disclaimerText": "sudo-flix ne gosti nobenih medijev ali datotek, temveč le povezave do storitev tretjih oseb. Pravna vprašanja je potrebno posredovati gostiteljem in ponudnikom datotek. sudo-flix ni odgovoren za medijske datoteke, ki jih prikazujejo ponudniki." + }, + "links": { + "discord": "Discord", + "dmca": "DMCA", + "github": "GitHub" + }, + "tagline": "Z odprtokodno aplikacijo sudo-flix si oglejte najljubše oddaje in filme." + }, + "global": { + "name": "sudo-flix", + "pages": { + "about": "O projektu", + "dmca": "DMCA", + "login": "Prijava", + "pagetitle": "{{title}} - sudo-flix", + "register": "Registriraj se", + "settings": "Nastavitve" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "Zaznamki" + }, + "continueWatching": { + "sectionTitle": "Nadaljuj z ogledom" + }, + "mediaList": { + "stopEditing": "Ustavite urejanje" + }, + "search": { + "allResults": "To je vse, kar imamo na voljo!", + "failed": "Ni uspelo najti medija, prosim poskusite znova!", + "loading": "Nalaganje...", + "noResults": "Vsebin nismo našli!", + "placeholder": "Kaj si želite gledati?", + "sectionTitle": "Rezultati iskanja" + }, + "titles": { + "day": { + "default": "Kateri film ali serijo bi si želeli ogledati ob tem popoldnevu?", + "extra": [ + "Se počutite pustolovsko? Jurski park je morda odlična izbira." + ] + }, + "morning": { + "default": "Kateri film ali serijo bi si želeli ogledati ob tem jutru?", + "extra": ["Slišala sem, da je film \"Pred sončnim vzhodom\" odličen"] + }, + "night": { + "default": "Kateri film ali serijo bi si želeli ogledati nocoj?", + "extra": [ + "Utrujeni? Slišal sem, da je \"Izganjalec mrtvih\" odličen film." + ] + } + } + }, + "media": { + "episodeDisplay": "S{{season}} E{{episode}}", + "types": { + "movie": "Film", + "show": "Serija" + } + }, + "navigation": { + "banner": { + "offline": "Preverite vašo internetno povezavo" + }, + "menu": { + "about": "O nas", + "donation": "Doniraj", + "logout": "Odjava", + "register": "Sinhronizacija z oblakom", + "settings": "Nastavitve", + "support": "Podpora" + } + }, + "notFound": { + "badge": "Ni najdeno", + "goHome": "Nazaj domov", + "message": "Iskali smo povsod: pod preprogo, v omari, za \"proxyjem\", vendar na koncu nismo našli strani, ki jo iščete.", + "title": "Ni bilo mogoče najti te strani" + }, + "overlays": { + "close": "Zapri" + }, + "player": { + "back": { + "default": "Nazaj domov", + "short": "Nazaj" + }, + "casting": { + "enabled": "Predvajanje vsebine v napravo..." + }, + "menus": { + "downloads": { + "disclaimer": "Prenosi se opravijo neposredno pri ponudniku vsebin. sudo-flix nima nadzora nad načinom zagotavljanja prenosov.", + "downloadPlaylist": "Prenesi playlisto", + "downloadSubtitle": "Prenesi trenutne podnapise", + "downloadVideo": "Prenesi video", + "hlsDisclaimer": "Prenosi se opravijo neposredno pri ponudniku vsebin. sudo-flix nima nadzora nad načinom zagotavljanja prenosov. Upoštevajte, da prenašate seznam predvajanja tipa \"HLS\"; ta je namenjen uporabnikom, ki poznajo napredno pretakanje večpredstavnostnih vsebin.", + "onAndroid": { + "1": "Če želite prenesti v sistemu Android, kliknite gumb za prenos, nato na novi strani tipnite in držite videoposnetek ter izberite shrani.", + "shortTitle": "Prenesi / Android", + "title": "Prenos v operacijskem sistemu Android" + }, + "onIos": { + "1": "Če želite prenesti v sistemu iOS, kliknite gumb za prenos, nato na novi strani kliknite in nato Shrani v datoteke .", + "shortTitle": "Prenesu / iOS", + "title": "Prenašanje v sistemu iOS" + }, + "onPc": { + "1": "V računalniku kliknite gumb za prenos, nato na novi strani desno kliknite videoposnetek in izberite Shrani videoposnetek kot", + "shortTitle": "Prenesi / Računalnik", + "title": "Prenos na računalnik" + }, + "title": "Prenos" + }, + "episodes": { + "button": "Epizode", + "emptyState": "V tej sezoni ni epizod, oglejte si jo pozneje!", + "episodeBadge": "E{{episode}}", + "loadingError": "Napaka pri nalaganju sezone", + "loadingList": "Nalaganje...", + "loadingTitle": "Nalaganje..." + }, + "playback": { + "speedLabel": "Hitrost predvajanja", + "title": "Nastavitve predvajanja" + }, + "quality": { + "automaticLabel": "Avtomatska izbira kvalitete", + "hint": "Poskusite <0>preklop vira, da dobite različne možnosti kakovosti.", + "iosNoQuality": "Zaradi omejitev, ki jih je določil Apple, izbira kakovosti v sistemu iOS za ta vir ni na voljo. Poskusite <0>preklopiti na drug vir, da dobite različne možnosti kakovosti.", + "title": "Kvaliteta" + }, + "settings": { + "downloadItem": "Prenesi", + "enableSubtitles": "Vklopi podnapise", + "experienceSection": "Izkušnje ogleda", + "playbackItem": "Nastavitve predvajanja", + "qualityItem": "Kvaliteta", + "sourceItem": "Viri vsebin", + "subtitleItem": "Nastavitve podnapisov", + "videoSection": "Nastavitve ogleda" + }, + "sources": { + "failed": { + "text": "Pri iskanju videoposnetkov je prišlo do napake, zato poskusite z drugim virom.", + "title": "Neuspešno iskanje" + }, + "noEmbeds": { + "text": "Nismo našli nobenih integriranih virov, poskusite z drugim virom.", + "title": "Ni bilo najdenih nobenih integriranih virov" + }, + "noStream": { + "text": "Ta vir nima tokov za ta film ali serijo.", + "title": "Ni vira" + }, + "title": "Viri", + "unknownOption": "Neznano" + }, + "subtitles": { + "customChoice": "Izberi podnapise iz datoteke", + "customizeLabel": "Prilagodi", + "offChoice": "Off", + "settings": { + "backlink": "Podnapisi po meri", + "delay": "Zamik podnapisov", + "fixCapitals": "Popravi velike začetnice" + }, + "title": "Podnapisi", + "unknownLanguage": "Neznano" + } + }, + "metadata": { + "failed": { + "badge": "Neuspešno", + "homeButton": "Domov", + "text": "Metapodatkov medija ni bilo mogoče naložiti iz baze TMDB. Preverite, ali je TMDB na vaši internetni povezavi onemogočen ali blokiran.", + "title": "Ni uspelo naložiti metapodatkov" + }, + "notFound": { + "badge": "Ni najdeno", + "homeButton": "Nazaj domov", + "text": "Medija, ki ste ga zahtevali, nismo našli. Ali je bil odstranjen ali pa ste spremenili spletni naslov.", + "title": "Tega medija ni bilo mogoče najti." + } + }, + "nextEpisode": { + "cancel": "Prekliči", + "next": "Naslednja epizoda" + }, + "playbackError": { + "badge": "Napaka v predvajanju", + "errors": { + "errorAborted": "Uporabnikova zahteva je prekinila pridobivanje medija.", + "errorDecode": "Kljub temu, da je bilo predhodno ugotovljeno, da je medijski vir uporaben, je pri poskusu dekodiranja prišlo do napake.", + "errorGenericMedia": "Piršlo je do neznane napake na mediju.", + "errorNetwork": "Prišlo je do napake v omrežju, ki je preprečila uspešno pridobivanje medija, čeprav je bil prej na voljo.", + "errorNotSupported": "Objekt medija ali ponudnik medija ni podprt." + }, + "homeButton": "Domov", + "text": "Pri poskusu predvajanja medija je prišlo do napake. Poskusite znova.", + "title": "Ni uspelo predvajati videoposnetka!" + }, + "scraping": { + "items": { + "failure": "Zgodila se je napaka", + "notFound": "Nima videoposnetka", + "pending": "Preverjanje videoposnetkov..." + }, + "notFound": { + "badge": "Ni najdeno", + "detailsButton": "Pokaži podrobnosti", + "homeButton": "Domov", + "text": "Iskali smo med našimi ponudniki ampak medija, ki ga iščete, nismo našli! Medijev ne gostimo in nimamo nadzora nad tem, katere vsebine so na voljo. Za več podrobnosti kliknite \"Prikaži podrobnosti\" spodaj.", + "title": "Iskanega nismo našli" + } + }, + "time": { + "regular": "{{timeWatched}} / {{duration}}", + "remaining": "{{timeLeft}} do konca • Konča ob {{timeFinished, datetime}}", + "shortRegular": "{{timeWatched}}", + "shortRemaining": "-{{timeLeft}}" + } + }, + "screens": { + "dmca": { + "text": "Dobrodošli na sudo-flixovi kontaktni strani DMCA! Spoštujemo pravice intelektualne lastnine in želimo hitro odpraviti vse težave v zvezi z avtorskimi pravicami. Če menite, da je bilo vaše avtorsko zaščiteno delo na naši platformi nepravilno uporabljeno, pošljite podrobno obvestilo DMCA na spodnji e-poštni naslov. Vključite opis avtorsko zaščitenega gradiva, svoje kontaktne podatke in izjavo o \"prepričanju v dobri veri\". Zavezani smo k takojšnji rešitvi teh zadev in cenimo vaše sodelovanje pri ohranjanju filmskega spleta, ki spoštuje ustvarjalnost in avtorske pravice.", + "title": "DMCA" + }, + "loadingApp": "Nalagam aplikacijo", + "loadingUser": "Nalagam profil", + "loadingUserError": { + "logout": "Odjava", + "reset": "Ponastavitev strežnika po meri", + "text": "Neuspešno nalaganje vašega profila", + "textWithReset": "Neuspešno nalaganje vašega profila iz strežnika po meri. Želite ponastaviti nastavitve nazaj na privzeti strežnik?" + }, + "migration": { + "failed": "Podatkov ni uspelo preseliti.", + "inProgress": "Prosimo počakajte, saj vaše podatke prenašamo. To ne bi smelo trajati dolgo." + } + }, + "settings": { + "account": { + "accountDetails": { + "deviceNameLabel": "Ime naprave", + "deviceNamePlaceholder": "Mobilni telefon", + "editProfile": "Uredi", + "logoutButton": "Odjava" + }, + "actions": { + "delete": { + "button": "Izbriši profil", + "confirmButton": "Izbriši profil", + "confirmDescription": "Ste prepričani, da želite izbrisati svoj račun? Vsi vaši podatki bodo izgubljeni!", + "confirmTitle": "Ali ste prepričani?", + "text": "Ta ukaz je nereverzibilen. Vsi podatki bodo izbrisani in nobenih podatkov ne bo mogoče obnoviti.", + "title": "Izbirši profil" + }, + "title": "Ukazi" + }, + "devices": { + "deviceNameLabel": "Ime naprave", + "failed": "Neuspešno nalaganje sej", + "removeDevice": "Odstrani", + "title": "Naprave" + }, + "profile": { + "finish": "Zaključi urejanje", + "firstColor": "Barva prvega profila", + "secondColor": "Barva drugega profila", + "title": "Urejanje slike profila", + "userIcon": "Ikona uporabnika" + }, + "register": { + "cta": "Začni", + "text": "Napredek ogleda lahko delite med napravami in jih sinhronizirate.", + "title": "Sinhroniziraj z oblakom" + }, + "title": "Profil" + }, + "appearance": { + "activeTheme": "Aktivno", + "themes": { + "blue": "Modra", + "default": "Privzeto", + "gray": "Siva", + "red": "Rdeča", + "teal": "Turkizna" + }, + "title": "Izgled" + }, + "connections": { + "server": { + "description": "Če se želite povezati z zaledjem po meri za hrambo podatkov, to omogočite in navedite URL naslov.", + "label": "Strežnik po meri", + "urlLabel": "Naslov strežnika po meri (URL)" + }, + "title": "Povezave", + "workers": { + "addButton": "Dodaj novega \"workerja\"", + "description": "Za delovanje aplikacije je ves promet usmerjen prek posredniških strežnikov. To nastavitev omogočite, če želite pripeljati lastne delavce.", + "emptyState": "Niste dodali \"workerja\", dodajte ga spodaj", + "label": "Uporaba posrednikov po meri", + "urlLabel": "Naslov Workerja (URL)", + "urlPlaceholder": "https://" + } + }, + "reset": "Ponastavi", + "save": "Shrani", + "sidebar": { + "info": { + "appVersion": "Verzija aplikacije", + "backendUrl": "Naslov zaledja", + "backendVersion": "Verzija zaledja", + "hostname": "Hostname", + "insecure": "\"Nevarna povezava\"", + "notLoggedIn": "Niste prijavljeni", + "secure": "Varna povezava", + "title": "Informacije o aplikaciji", + "unknownVersion": "Neznano", + "userId": "ID uporabnika" + } + }, + "subtitles": { + "backgroundLabel": "Motnost ozadja", + "colorLabel": "Barva", + "previewQuote": "Ne smem se bati. Strah je ubijalec misli.", + "textSizeLabel": "Velikost pisave", + "title": "Podnapisi" + }, + "unsaved": "Imate neshranjene spremembe" + } +} diff --git a/src/assets/locales/sv.json b/src/assets/locales/sv.json new file mode 100644 index 00000000..7d62aab3 --- /dev/null +++ b/src/assets/locales/sv.json @@ -0,0 +1,389 @@ +{ + "about": { + "description": "sudo-flix är en webbapplikation som söker efter strömmar på internet. Teamet strävar efter en mestadels minimalistisk ansats för att konsumera innehåll.", + "faqTitle": "Vanliga frågor", + "q1": { + "body": "sudo-flix hostar ingen innehåll. När du klickar på något att titta på, söks internet efter det valda mediet (På laddningsskärmen och i fliken 'Videokällor' kan du se vilken källa du använder). Inget medium laddas upp av sudo-flix, allt sker genom sökmotorn.", + "title": "Var kommer innehållet ifrån?" + }, + "q2": { + "body": "Det går inte att begära en show eller film, sudo-flix hanterar inte något innehåll. Allt innehåll visas genom källor på internet.", + "title": "Var kan jag begära en show eller film?" + }, + "q3": { + "body": "Våra sökresultat drivs av The Movie Database (TMDB) och visas oavsett om våra källor faktiskt har innehållet.", + "title": "Sökresultaten visar showen eller filmen, varför kan jag inte spela upp den?" + }, + "title": "Om sudo-flix" + }, + "actions": { + "copied": "Kopierad", + "copy": "Kopiera" + }, + "auth": { + "createAccount": "Har du inget konto ännu? <0>Skapa ett konto.", + "deviceNameLabel": "Enhetsnamn", + "deviceNamePlaceholder": "Min telefon", + "generate": { + "description": "Ditt lösenord fungerar som ditt användarnamn och lösenord. Se till att hålla det säkert eftersom du behöver ange det för att logga in på ditt konto", + "next": "Jag har sparat mitt lösenord", + "title": "Ditt lösenord" + }, + "hasAccount": "Har redan ett konto? <0>Logga in här.", + "login": { + "description": "Ange ditt lösenord för att logga in på ditt konto", + "deviceLengthError": "Ange ett enhetsnamn", + "passphraseLabel": "12-ords lösenord", + "passphrasePlaceholder": "Lösenord", + "submit": "Logga in", + "title": "Logga in på ditt konto", + "validationError": "Felaktigt eller ofullständigt lösenord" + }, + "register": { + "information": { + "color1": "Profilfärg ett", + "color2": "Profilfärg två", + "header": "Ange ett namn för din enhet och välj färger samt ett användarikon efter eget val", + "icon": "Användarikon", + "next": "Nästa", + "title": "Kontoinformation" + } + }, + "trust": { + "failed": { + "text": "Har du konfigurerat den korrekt?", + "title": "Kunde inte nå servern" + }, + "host": "Du ansluter till <0>{{hostname}} - bekräfta att du litar på den innan du skapar ett konto", + "no": "Gå tillbaka", + "title": "Litar du på denna server?", + "yes": "Jag litar på denna server" + }, + "verify": { + "description": "Ange ditt lösenord igen för att bekräfta att du har sparat det och skapa ditt konto", + "invalidData": "Data är inte giltig", + "noMatch": "Lösenorden matchar inte", + "passphraseLabel": "Ditt 12-ords lösenord", + "recaptchaFailed": "ReCaptcha validering misslyckades", + "register": "Skapa konto", + "title": "Bekräfta ditt lösenord" + } + }, + "errors": { + "badge": "Något gick fel", + "details": "Felinformation", + "reloadPage": "Ladda om sidan", + "showError": "Visa felinformation", + "title": "Vi stötte på ett fel!" + }, + "footer": { + "legal": { + "disclaimer": "Friskriver sig från ansvar", + "disclaimerText": "sudo-flix hostar inga filer utan länkar endast till filer från tredje part. Eventuella juridiska frågor bör tas upp med källorna till materialet. sudo-flix varken ansvarar eller styr över de mediefiler som visas." + }, + "links": { + "discord": "Discord", + "dmca": "DMCA", + "github": "GitHub" + }, + "tagline": "Titta på dina favoritprogram och filmer helt gratis." + }, + "global": { + "name": "sudo-flix", + "pages": { + "about": "Om oss", + "dmca": "DMCA", + "login": "Logga in", + "pagetitle": "{{title}} - sudo-flix", + "register": "Registrera", + "settings": "Inställningar" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "Bokmärken" + }, + "continueWatching": { + "sectionTitle": "Fortsätt titta" + }, + "mediaList": { + "stopEditing": "Sluta redigera" + }, + "search": { + "allResults": "Det är allt vi har!", + "failed": "Misslyckades med att hitta media, försök igen!", + "loading": "Laddar...", + "noResults": "Vi kunde inte hitta någonting!", + "placeholder": "Vad vill du titta på?", + "sectionTitle": "Sökresultat" + }, + "titles": { + "day": { + "default": "Vad vill du titta på i eftermiddag?" + }, + "morning": { + "default": "Vad vill du titta på den här morgonen?", + "extra": ["Jag hör att Before Sunrise är bra"] + }, + "night": { + "default": "Vad vill du titta på ikväll?", + "extra": ["Trött? Jag hör att The Exorcist är bra."] + } + } + }, + "media": { + "episodeDisplay": "S{{season}} E{{episode}}", + "types": { + "movie": "Film", + "show": "Serie" + } + }, + "navigation": { + "banner": { + "offline": "Kontrollera din internetanslutning" + }, + "menu": { + "about": "Om oss", + "donation": "Donera", + "logout": "Logga ut", + "register": "Synkronisera till molnet", + "settings": "Inställningar", + "support": "Support" + } + }, + "notFound": { + "badge": "Ej hittad", + "goHome": "Tillbaka till startsidan", + "message": "Vi letade överallt: under soptunnorna, i garderoben, bakom proxy men kunde slutligen inte hitta sidan du letar efter.", + "title": "Kunde inte hitta den sidan" + }, + "overlays": { + "close": "Stäng" + }, + "player": { + "back": { + "default": "Tillbaka till startsidan", + "short": "Tillbaka" + }, + "casting": { + "enabled": "Castar till enheten..." + }, + "menus": { + "downloads": { + "disclaimer": "Nedladdningar görs direkt från leverantören. sudo-flix har ingen kontroll över hur nedladdningarna tillhandahålls.", + "downloadVideo": "Ladda ner video", + "onAndroid": { + "1": "För att ladda ner på Android, klicka på nedladdningsknappen och på den nya sidan trycker och håller på videon, välj sedan spara.", + "shortTitle": "Ladda ner / Android", + "title": "Laddar ner på Android" + }, + "onIos": { + "1": "För att ladda ner på iOS, klicka på nedladdningsknappen och på den nya sidan klickar du på , sedan Spara i filer .", + "shortTitle": "Ladda ner / iOS", + "title": "Laddar ner på iOS" + }, + "onPc": { + "1": "På PC, klicka på nedladdningsknappen och på den nya sidan högerklickar du sedan på videon och väljer Spara video som", + "shortTitle": "Ladda ner / PC", + "title": "Laddar ner på PC" + }, + "title": "Ladda ner" + }, + "episodes": { + "button": "Avsnitt", + "emptyState": "Det finns inga avsnitt i denna säsong, kom tillbaka senare!", + "episodeBadge": "E{{episode}}", + "loadingError": "Fel vid laddning av säsong", + "loadingList": "Laddar...", + "loadingTitle": "Laddar..." + }, + "playback": { + "speedLabel": "Uppspelningshastighet", + "title": "Uppspelningsinställningar" + }, + "quality": { + "automaticLabel": "Automatisk kvalitet", + "hint": "Du kan prova att <0>byta källa för att få olika kvalitetsoptioner.", + "iosNoQuality": "På grund av Apple-definierade begränsningar är kvalitetsval inte tillgängligt på iOS för denna källa. Du kan prova att <0>byta till en annan källa för att få olika kvalitetsoptioner.", + "title": "Kvalitet" + }, + "settings": { + "downloadItem": "Ladda ner", + "experienceSection": "Visningsupplevelse", + "playbackItem": "Uppspelningsinställningar", + "qualityItem": "Kvalitet", + "sourceItem": "Videokällor", + "videoSection": "Videoinställningar" + }, + "sources": { + "failed": { + "text": "Det uppstod ett fel när vi försökte hitta några videor, försök med en annan källa.", + "title": "Misslyckades med att skrapa" + }, + "noEmbeds": { + "text": "Vi kunde inte hitta några inbäddningar, försök med en annan källa.", + "title": "Inga inbäddningar hittade" + }, + "noStream": { + "text": "Den här källan har ingen ström för denna film eller serie.", + "title": "Ingen ström" + }, + "title": "Källor", + "unknownOption": "Okänd" + } + }, + "metadata": { + "failed": { + "badge": "Misslyckades", + "homeButton": "Till startsidan", + "text": "Kunde inte ladda medias metadata från TMDB. Kontrollera om TMDB är nere eller blockerat på din internetanslutning.", + "title": "Misslyckades att ladda metadata" + }, + "notFound": { + "badge": "Ej hittad", + "homeButton": "Tillbaka till startsidan", + "text": "Vi kunde inte hitta den media du begärde. Antingen har den tagits bort eller så har du manipulerat URL:en.", + "title": "Kunde inte hitta den media." + } + }, + "nextEpisode": { + "cancel": "Avbryt", + "next": "Nästa avsnitt" + }, + "playbackError": { + "badge": "Uppspelningsfel", + "errors": { + "errorAborted": "Hämtningen av media avbröts på användarens begäran.", + "errorDecode": "Trots att det tidigare bedömts som användbart uppstod ett fel vid försök att avkoda mediaresursen, vilket resulterade i ett fel.", + "errorGenericMedia": "Okänt mediafel inträffade.", + "errorNetwork": "Någon form av nätverksfel inträffade vilket förhindrade att media framgångsrikt hämtades, trots att det tidigare var tillgängligt.", + "errorNotSupported": "Media- eller mediaproviderobjektet stöds inte." + }, + "homeButton": "Till startsidan", + "text": "Det uppstod ett fel när vi försökte spela upp media. Försök igen.", + "title": "Misslyckades spela upp video!" + }, + "scraping": { + "items": { + "failure": "Fel inträffade", + "notFound": "Har inte videon", + "pending": "Söker efter videor..." + }, + "notFound": { + "badge": "Ej hittad", + "detailsButton": "Visa detaljer", + "homeButton": "Till startsidan", + "text": "Vi har sökt genom våra leverantörer och kan inte hitta den media du letar efter! Vi hostar inte media och har ingen kontroll över tillgängligheten. Klicka på 'Visa detaljer' nedan för mer information.", + "title": "Vi kunde inte hitta det" + } + }, + "time": { + "regular": "{{timeWatched}} / {{duration}}", + "remaining": "{{timeLeft}} kvar • Slutar kl {{timeFinished, datetime}}", + "shortRegular": "{{timeWatched}}", + "shortRemaining": "-{{timeLeft}}" + } + }, + "screens": { + "dmca": { + "text": "Välkommen till sudo-flixs DMCA-kontaktsida! Vi respekterar immateriella rättigheter och vill snabbt hantera eventuella upphovsrättsliga bekymmer. Om du tror att ditt upphovsrättsskyddade verk har använts felaktigt på vår plattform, skicka gärna en detaljerad DMCA-notis till e-postadressen nedan. Inkludera en beskrivning av det upphovsrättsskyddade materialet, dina kontaktuppgifter och en tro på god tro. Vi åtar oss att lösa dessa frågor snabbt och uppskattar ditt samarbete för att hålla sudo-flix som en plats som respekterar kreativitet och upphovsrätt.", + "title": "DMCA" + }, + "loadingApp": "Laddar applikationen", + "loadingUser": "Laddar din profil", + "loadingUserError": { + "logout": "Logga ut", + "reset": "Återställ anpassad server", + "text": "Misslyckades att ladda din profil", + "textWithReset": "Misslyckades att ladda din profil från din anpassade server, vill du återställa till standardservern?" + }, + "migration": { + "failed": "Misslyckades att migrera dina data.", + "inProgress": "Vänligen vänta, vi migrerar dina data. Detta borde inte ta lång tid." + } + }, + "settings": { + "account": { + "accountDetails": { + "deviceNameLabel": "Enhetens namn", + "deviceNamePlaceholder": "Min telefon", + "editProfile": "Redigera", + "logoutButton": "Logga ut" + }, + "actions": { + "delete": { + "button": "Ta bort konto", + "confirmButton": "Ta bort konto", + "confirmDescription": "Är du säker på att du vill ta bort ditt konto? All din data kommer att gå förlorad!", + "confirmTitle": "Är du säker?", + "text": "Denna åtgärd är oåterkallelig. All data kommer att raderas och kan inte återställas.", + "title": "Ta bort konto" + }, + "title": "Åtgärder" + }, + "devices": { + "deviceNameLabel": "Enhetens namn", + "failed": "Misslyckades att ladda sessioner", + "removeDevice": "Ta bort", + "title": "Enheter" + }, + "profile": { + "finish": "Slutför redigering", + "firstColor": "Profilfärg ett", + "secondColor": "Profilfärg två", + "title": "Redigera profilbild", + "userIcon": "Användarikon" + }, + "register": { + "cta": "Kom igång", + "text": "Dela din tittarframsteg mellan enheter och håll dem synkroniserade.", + "title": "Synkronisera till molnet" + }, + "title": "Konto" + }, + "appearance": { + "activeTheme": "Aktiv", + "themes": { + "blue": "Blå", + "default": "Standard", + "gray": "Grå", + "red": "Röd", + "teal": "Blågrön" + }, + "title": "Utseende" + }, + "connections": { + "server": { + "description": "Om du vill ansluta till en anpassad bakänd för att lagra dina data, aktivera detta och ange URL:en.", + "label": "Anpassad server", + "urlLabel": "Egen server URL" + }, + "title": "Anslutningar", + "workers": { + "addButton": "Lägg till ny arbetare", + "description": "För att få applikationen att fungera skickas all trafik genom proxys. Aktivera detta om du vill använda egna arbetare.", + "emptyState": "Inga arbetare ännu, lägg till en nedan", + "label": "Använd egna proxyarbetare", + "urlLabel": "Arbetar-URL:er", + "urlPlaceholder": "https://" + } + }, + "reset": "Återställ", + "save": "Spara", + "sidebar": { + "info": { + "appVersion": "Appversion", + "backendUrl": "Bakänd-URL", + "backendVersion": "Bakändversion", + "hostname": "Värdnamn", + "insecure": "Osäker", + "notLoggedIn": "Du är inte inloggad", + "secure": "Säker", + "title": "Appinformation", + "unknownVersion": "Okänd", + "userId": "Användar-ID" + } + }, + "unsaved": "Du har osparade ändringar" + } +} diff --git a/src/assets/locales/ta.json b/src/assets/locales/ta.json new file mode 100644 index 00000000..0b827ceb --- /dev/null +++ b/src/assets/locales/ta.json @@ -0,0 +1,67 @@ +{ + "about": { + "faqTitle": "பொதுவான கேள்விகள்", + "title": "sudo-flix பற்றி" + }, + "actions": { + "copied": "நகலெடுக்கப்பட்டது", + "copy": "நகல்" + }, + "auth": { + "createAccount": "கணக்கு இல்லையா? <0>கணக்கை உருவாக்குங்கள்", + "deviceNameLabel": "கருவியின் பெயர்", + "deviceNamePlaceholder": "எனது கைபேசி", + "generate": { + "description": "தங்கள் கடவுச்சொற்றொடரே தங்களது பயனர் பெயர் மற்றும் கடவுச்சொல். கணக்கினுள் நுழைய அதனை பாதுகாப்பாக வைத்திருங்கள்", + "next": "கடவுச்சொற்றொடரை சேமித்துவிட்டேன்", + "passphraseFrameLabel": "கடவுச்சொற்றொடர்", + "title": "உங்கள் கடவுச்சொற்றொடர்" + }, + "hasAccount": "கணக்கு வைத்துள்ளீரா? <0>புகுபதிகை செய்க ", + "login": { + "description": "உங்கள் கணக்கினுள் புகுபதிய கடவுச்சொற்றொடரை உள்ளிடுக", + "deviceLengthError": "கருவியின் பெயரை உள்ளிடுக", + "passphraseLabel": "12-சொல் கடவுச்சொற்றொடர்", + "passphrasePlaceholder": "கடவுச்சொற்றொடர்", + "submit": "புகுபதிகை", + "title": "உங்கள் கணக்கினுள் புகுபதிய", + "validationError": "தவறான அல்லது முழுமையற்ற கடவுச்சொற்றொடர்" + }, + "register": { + "information": { + "icon": "பயனர் குறிப்படம்", + "next": "அடுத்து", + "title": "கணக்கு விவரம்" + } + }, + "trust": { + "no": "பின்செல்" + }, + "verify": { + "register": "கணக்கை உருவாக்கு", + "title": "கடவுச்சொற்றொடரை உறுதி செய்க" + } + }, + "global": { + "pages": { + "login": "புகுபதிகை", + "settings": "அமைப்புகள்" + } + }, + "home": { + "search": { + "sectionTitle": "தேடல் முடிவுகள்" + } + }, + "media": { + "types": { + "movie": "திரைப்படம்", + "show": "காட்சி" + } + }, + "navigation": { + "menu": { + "settings": "அமைப்புகள்" + } + } +} diff --git a/src/assets/locales/th.json b/src/assets/locales/th.json new file mode 100644 index 00000000..7c26c6d5 --- /dev/null +++ b/src/assets/locales/th.json @@ -0,0 +1,413 @@ +{ + "about": { + "description": "sudo-flix เป็นเว็บแอปพลิเคชันที่ค้นหาสตรีมทางอินเทอร์เน็ต ทีมงานตั้งเป้าไปที่แนวทางการบริโภคเนื้อหาแบบมินิมอลเป็นส่วนใหญ่", + "faqTitle": "คําถามทั่วไป", + "q1": { + "body": "sudo-flix ไม่ได้เป็นเจ้าของเนื้อหาใด ๆ เมื่อคุณคลิกที่บางสิ่งเพื่อดู อินเทอร์เน็ตจะถูกค้นหาสื่อที่เลือก (บนหน้าจอโหลดและในแท็บ 'แหล่งวิดีโอ' คุณจะเห็นว่าคุณกําลังใช้แหล่งใด) สื่อไม่เคยถูกอัปโหลดโดย sudo-flix ทุกอย่างผ่านกลไกการค้นหานี้", + "title": "เนื้อหามาจากที่ไหน?" + }, + "q2": { + "body": "ไม่สามารถขอซีรี่ย์หรือภาพยนตร์ได้ sudo-flix ไม่ได้จัดการเนื้อหาใด ๆ เนื้อหาทั้งหมดถูกดูผ่านแหล่งข้อมูลบนอินเทอร์เน็ต", + "title": "ฉันจะขอซีรี่ย์หรือภาพยนตร์ได้ที่ไหน?" + }, + "q3": { + "body": "ผลการค้นหาของเราขับเคลื่อนโดย The Movie Database (TMDB) และจะแสดงไม่ว่าแหล่งข้อมูลของเราจะมีเนื้อหาจริงหรือไม่", + "title": "ผลการค้นหาซีรี่ย์หรือภาพยนตร์ ทําไมฉันถึงเล่นไม่ได้?" + }, + "title": "เกี่ยวกับ sudo-flix" + }, + "actions": { + "copied": "คัดลอกแล้ว", + "copy": "คัดลอก" + }, + "auth": { + "createAccount": "ยังไม่มีบัญชีใช่หรือไม่?<0>สร้างบัญชี", + "deviceNameLabel": "ชื่ออุปกรณ์", + "deviceNamePlaceholder": "โทรศัพท์ส่วนบุคคล", + "generate": { + "description": "รหัสผ่านของคุณถูกตั้งเช่นเดียวกับชื่อผู้ใช้และรหัสผ่าน โปรดตรวจสอบให้แน่ใจว่ารหัสผ่านของคุณถูกเก็บอย่างปลอดภัย คุณจำเป็นต้องใช้เพื่อเข้าสู่ระบบบัญชีของคุณ", + "next": "ฉันบันทึกรหัสผ่านของฉันแล้ว", + "passphraseFrameLabel": "หรัสผ่าน", + "title": "หรัสผ่านของคุณ" + }, + "hasAccount": "คุณมีบัญชีแล้วหรือไม่? <0>เข้าสู่ระบบที่นี่.", + "login": { + "description": "โปรดป้อนสหัสผ่านของคุณเพื่อเข้าสู่ระบบ", + "deviceLengthError": "โปรดป้อนชื่ออุปกรณ์ของคุณ", + "passphraseLabel": "หรัสผ่าน 12 ตัว", + "passphrasePlaceholder": "หรัสผ่าน", + "submit": "เข้าสู่ระบบ", + "title": "เข้าสู่ระบบบัญชีของคุณที่นี่", + "validationError": "รหัสผ่านไม่ถูกต้อง หรือ รหัสผ่านไม่สมบูรณ์" + }, + "register": { + "information": { + "color1": "สีโปรไฟล์ 1", + "color2": "สีโปรไฟล์ 2", + "header": "โปรดใส่ชื่ออุปกรณ์ของคุณและเลือกสีจากนั้นเลือกสัญลักษณ์ผู้ใช้ที่คุณต้องการ", + "icon": "สัญลักษณ์ผู้ใช้", + "next": "ต่อไป", + "title": "ข้อมูลบัญชี" + } + }, + "trust": { + "failed": { + "text": "คุณทำตามขั้นตอนอย่างถูกต้องหรือไม่?", + "title": "การเข้าสู่ระบบล้มเหลว" + }, + "host": "คุณกำลังเชื่อมต่อกับ <0>{{hostname}} - โปรดกดตกลงเชื่อถือเครือข่ายนี้ก่อนสร้างบัญชี", + "no": "ย้อนกลับ", + "title": "คุณเชื่อเครือข่ายนี้หรือไม่?", + "yes": "ฉันเชื่อเครือข่ายนี้" + }, + "verify": { + "description": "โปรดป้อนรหัสผ่านก่อนหน้านี้ของคุณ เพื่อยืนยันว่าคุณได้บันทึกและเพื่อสร้างบัญชีของคุณ", + "invalidData": "ข้อไม่ถูกต้อง", + "noMatch": "รหัสผ่านไม่ตรงกัน", + "passphraseLabel": "รหัสผ่าน 12 ตัว ของคุณ", + "recaptchaFailed": "การตรวจสอบล้มเหลว", + "register": "สร้างบัญชี", + "title": "ยืนยันรหัสผ่านของคุณ" + } + }, + "errors": { + "badge": "ไม่สามารถใช้งานได้", + "details": "ข้อมูลผิดพลาด", + "reloadPage": "โหลดหน้าใหม่", + "showError": "แสดงข้อมูลที่ผิดพลาด", + "title": "เราพบข้อผิดพลาด!" + }, + "footer": { + "legal": { + "disclaimer": "ข้อจํากัดความรับผิดชอบ", + "disclaimerText": "sudo-flix ไม่ได้เป็นเจ้าของไฟล์ใด ๆ เป็นเพียงลิงก์ไปยังบริการของบุคคลที่สาม ประเด็นทางกฎหมายควรดําเนินการกับเจ้าของไฟล์ และผู้ให้บริการ sudo-flix ไม่รับผิดชอบต่อไฟล์สื่อใด ๆ ที่แสดงโดยผู้ให้บริการวิดีโอ" + }, + "links": { + "discord": "Discord", + "dmca": "DMCA", + "github": "GitHub" + }, + "tagline": "ดูรายการซีรี่ย์และภาพยนตร์ที่คุณชื่นชอบด้วยแอปสตรีมนี้" + }, + "global": { + "name": "sudo-flix", + "pages": { + "about": "เกี่ยวกับ", + "dmca": "DMCA", + "login": "เข้าสู่ระบบ", + "pagetitle": "{{title}} - sudo-flix", + "register": "ลงทะเบียน", + "settings": "ตั้งค่า" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "รายการของฉัน" + }, + "continueWatching": { + "sectionTitle": "ดูต่อ" + }, + "mediaList": { + "stopEditing": "หยุดแก้ไข" + }, + "search": { + "allResults": "นั่นคือทั้งหมดที่เรามี!", + "failed": "ไม่พบสื่อนี้ ลองอีกครั้ง!", + "loading": "กำลังโหลด..", + "noResults": "เราไม่พบอะไรเลย!", + "placeholder": "คุณอยากดูอะไรคะ?", + "sectionTitle": "ผลการค้นหา" + }, + "titles": { + "day": { + "default": "คุณอยากดูเรื่องอะไรในช่วงบ่ายนี้?" + }, + "morning": { + "default": "คุณอยากดูอะไรเช้านี้?", + "extra": ["ฉันได้ยินมาว่าเรื่อง Before Sunrise สนุก"] + }, + "night": { + "default": "คุณอยากดูเรื่องอะไรในช่วงค่ำ?", + "extra": ["เหนื่อยมั้ย? ฉันได้ยินมาว่า The Exorcist นั้นดี"] + } + } + }, + "media": { + "episodeDisplay": "ภ{{season}} ต{{episode}}", + "types": { + "movie": "ภาพยนตร์", + "show": "ซีรี่ย์" + } + }, + "navigation": { + "banner": { + "offline": "ตรวจสอบการเชื่อมต่ออินเทอร์เน็ตของคุณ" + }, + "menu": { + "about": "เกี่ยวกับเรา", + "donation": "บริจาค", + "logout": "ออกจากระบบ", + "register": "เชื่อมต่อกับคลาวด์", + "settings": "ตั้งค่า", + "support": "ช่วยเหลือ" + } + }, + "notFound": { + "badge": "ไม่พบ", + "goHome": "กลับไปที่หน้าหลัก", + "message": "เรามองหาทั่วทุกที่แล้ว : ใต้ถังขยะ ในตู้เสื้อผ้า และข้างหลังพร็อกซิ แต่เราไม่พบหน้าที่คุณตามหา", + "title": "ไม่พบหน้านั้น" + }, + "overlays": { + "close": "ปิด" + }, + "player": { + "back": { + "default": "กลับไปที่หน้าหลัก", + "short": "กลับ" + }, + "casting": { + "enabled": "เชื่อมต่ออุปกรณ์.." + }, + "menus": { + "downloads": { + "disclaimer": "การดาวน์โหลดจะถูกนํามาจากผู้ให้บริการโดยตรง sudo-flix ไม่สามารถควบคุมวิธีการดาวน์โหลดได้", + "downloadPlaylist": "ดาวน์โหลดเพลย์ลิสต์", + "downloadSubtitle": "ดาวน์โหลดคำบรรยายนี้", + "downloadVideo": "ดาวน์โหลดวิดีโอ", + "hlsDisclaimer": "การดาวน์โหลดจะเป็นการดาวน์โหลดโดยตรงจากผู้ให้บริการ โดยเว็บไซต์ sudo-flix ไม่สามารถควบคุมวิธีการที่ไฟล์จะถูกดาวน์โหลด โปรดทราบว่าหากคุณกำลังดาวน์โหลดเพลย์ลิสต์ HLS ซึ่งมีจุดประสงค์สำหรับผู้ใช้ที่มีความเข้าใจใน สตรีมมิ่ง และมัลติมีเดียขั้นสูง.", + "onAndroid": { + "1": "หากต้องการดาวน์โหลดบน Android ให้คลิกปุ่มดาวน์โหลด จากนั้นในหน้าใหม่ แตะ บนวิดีโอค้างไว้ จากนั้นเลือก บันทึก", + "shortTitle": "ดาวน์โหลด / Android", + "title": "กําลังดาวน์โหลดบน Android" + }, + "onIos": { + "1": "หากต้องการดาวน์โหลดบน iOS ให้คลิกปุ่มดาวน์โหลด จากนั้นในหน้าใหม่ ให้คลิก จากนั้น บันทึกลงในไฟล์ ", + "shortTitle": "ดาวน์โหลด / iOS", + "title": "กําลังดาวน์โหลดบน iOS" + }, + "onPc": { + "1": "คลิกปุ่มดาวน์โหลดบนคอมพิวเตอร์ จากนั้นในหน้าใหม่ คลิกขวาที่วิดีโอแล้วเลือก บันทึกวิดีโอเป็น", + "shortTitle": "ดาวน์โหลด / คอมพิวเตอร์", + "title": "กําลังดาวน์โหลดบนคอมพิวเตอร์" + }, + "title": "ดาวน์โหลด" + }, + "episodes": { + "button": "ตอน", + "emptyState": "ไม่มีตอนเหล่านี้ในภาคนี้ โปรดกลับมาดูทีหลัง!", + "episodeBadge": "ตอนที่ {{episode}}", + "loadingError": "การโหลดภาคผิดพลาด", + "loadingList": "กำลังโหลด…", + "loadingTitle": "กำลังโหลด…" + }, + "playback": { + "speedLabel": "ความเร็วในการเล่น", + "title": "การตั้งค่าการเล่น" + }, + "quality": { + "automaticLabel": "คุณภาพอัตโนมัติ", + "hint": "คุณสามารถลอง <0>สลับแหล่งที่มา เพื่อรับตัวเลือกคุณภาพที่แตกต่างกัน", + "iosNoQuality": "เนื่องจากข้อจํากัดที่กําหนดโดย Apple การเลือกคุณภาพจึงไม่พร้อมใช้งานบน iOS สําหรับแหล่งข้อมูลนี้ คุณสามารถลอง <0>สลับไปยังแหล่งอื่น เพื่อรับตัวเลือกคุณภาพที่แตกต่างกัน", + "title": "คุณภาพ" + }, + "settings": { + "downloadItem": "ดาวน์โหลด", + "enableSubtitles": "เปิดคำบรรยาย", + "experienceSection": "ประสบการณ์รับชม", + "playbackItem": "ตั้งค่าการเล่น", + "qualityItem": "คุณภาพ", + "sourceItem": "แหล่งที่มาของวิดีโอ", + "subtitleItem": "ตั้งค่าคำบรรยาย", + "videoSection": "ตั้งค่าวิดีโอ" + }, + "sources": { + "failed": { + "text": "มีข้อผิดพลาดขณะพยายามค้นหาวิดีโอ โปรดลองใช้แหล่งอื่น", + "title": "ค้นหาไม่พบ" + }, + "noEmbeds": { + "text": "เราไม่พบการฝังใด ๆ โปรดลองใช้แหล่งอื่น", + "title": "ไม่พบการฝัง" + }, + "noStream": { + "text": "แหล่งที่มานี้ไม่มีสตรีมสำหรับภาพยนตร์หรือซีรี่ย์เรื่องนี้", + "title": "ไม่มีสตรีม" + }, + "title": "แหล่งที่มา", + "unknownOption": "ไม่ทราบ" + }, + "subtitles": { + "customChoice": "เลือกคำบรรยายจากไฟล์", + "customizeLabel": "ปรับแต่ง", + "offChoice": "ปิด", + "settings": { + "backlink": "คำบรรยายแบบกำหนดเอง", + "delay": "เวลาดีเลย์คำบรรยาย" + }, + "title": "คำบรรยาย", + "unknownLanguage": "ไม่ทราบ" + } + }, + "metadata": { + "failed": { + "badge": "ล้มเหลว", + "homeButton": "กลับหน้าหลัก", + "text": "ไม่สามารถโหลดข้อมูล meta ของสื่อจาก TMDB ได้ โปรดตรวจสอบว่า TMDB ล่มหรือถูกบล็อกในการเชื่อมต่ออินเทอร์เน็ตของคุณ", + "title": "โหลดข้อมูล meta ไม่สำเร็จ" + }, + "notFound": { + "badge": "ไม่พบ", + "homeButton": "กลับไปที่หน้าหลัก", + "text": "เราไม่พบสื่อที่คุณร้องขอ ไม่ว่าจะถูกลบออก หรือคุณดัดแปลงกับ URL", + "title": "ไม่พบสื่อ" + } + }, + "nextEpisode": { + "cancel": "ยกเลิก", + "next": "ตอนต่อไป" + }, + "playbackError": { + "badge": "เกิดข้อผิดพลาดในการเล่น", + "errors": { + "errorAborted": "การดึงข้อมูลสื่อถูกยกเลิกโดยคําขอของผู้ใช้", + "errorDecode": "แม้จะได้รับการพิจารณาก่อนหน้านี้ว่าใช้งานได้ แต่เกิดข้อผิดพลาดขณะพยายามถอดรหัสทรัพยากรสื่อ จึงส่งผลให้เกิดข้อผิดพลาด", + "errorGenericMedia": "เกิดข้อผิดพลาดของสื่อที่ไม่รู้จัก", + "errorNetwork": "เกิดข้อผิดพลาดของเครือข่ายบางประเภทซึ่งทําให้ไม่สามารถดึงสื่อได้สําเร็จ แม้ว่าจะเคยใช้งานมาก่อนก็ตาม", + "errorNotSupported": "ไม่รองรับสื่อหรือวัตถุของผู้ให้บริการสื่อ" + }, + "homeButton": "กลับหน้าหลัก", + "text": "เกิดข้อผิดพลาดในการเล่นวิดีโอ โปรดลองอีกครั้ง", + "title": "เกิดข้อผิดพลาดในการเล่นวิดีโอ!" + }, + "scraping": { + "items": { + "failure": "เกิดข้อผิดพลาด", + "notFound": "ไม่มีวิดีโอ", + "pending": "กำลังตรวจสอบวิดีโอ…" + }, + "notFound": { + "badge": "ไม่พบ", + "detailsButton": "แสดงรายละเอียด", + "homeButton": "กลับหน้าหลัก", + "text": "เราได้ค้นหาผ่านผู้ให้บริการของเราและไม่พบสื่อที่คุณกําลังมองหา! เราไม่ได้เป็นเจ้าของสื่อและไม่สามารถควบคุมสิ่งที่ไม่มีอยู่ได้ โปรดคลิก “แสดงรายละเอียด” ด้านล่างสําหรับรายละเอียดเพิ่มเติม", + "title": "เราไม่พบสิ่งนั้น" + } + }, + "time": { + "regular": "{{timeWatched}} / {{duration}}", + "remaining": "{{timeLeft}} หมดเวลา • สิ้นสุดใน {{timeFinished, datetime}}", + "shortRegular": "{{timeWatched}}", + "shortRemaining": "-{{timeLeft}}" + } + }, + "screens": { + "dmca": { + "text": "ยินดีต้อนรับสู่หน้าติดต่อ DMCA ของ sudo-flix! เราเคารพสิทธิ์ในทรัพย์สินทางปัญญาและต้องการแก้ไขข้อกังวลด้านลิขสิทธิ์อย่างรวดเร็ว หากคุณเชื่อว่างานที่มีลิขสิทธิ์ของคุณถูกใช้อย่างไม่เหมาะสมบนแพลตฟอร์มของเรา โปรดส่งประกาศ DMCA โดยละเอียดไปยังอีเมลด้านล่าง โปรดระบุคําอธิบายของเนื้อหาที่มีลิขสิทธิ์ รายละเอียดการติดต่อของคุณ และคําแถลงความเชื่อด้วยความสุจริต เรามุ่งมั่นที่จะแก้ไขเรื่องเหล่านี้อย่างทันท่วงทีและขอขอบคุณสําหรับความร่วมมือของคุณในการทําให้ sudo-flix เป็นสถานที่ที่เคารพความคิดสร้างสรรค์และลิขสิทธิ์", + "title": "DMCA" + }, + "loadingApp": "กําลังโหลดแอปพลิเคชัน", + "loadingUser": "กําลังโหลดโปรไฟล์ของคุณ", + "loadingUserError": { + "logout": "ออกจากระบบ", + "reset": "รีเซ็ตเซิร์ฟเวอร์ที่กําหนดเอง", + "text": "โหลดโปรไฟล์ของคุณไม่สําเร็จ", + "textWithReset": "โหลดโปรไฟล์ของคุณจากเซิร์ฟเวอร์ที่กําหนดเองไม่สําเร็จ ต้องการย้อนกลับไปที่เซิร์ฟเวอร์เริ่มต้นหรือไม่?" + }, + "migration": { + "failed": "ไม่สามารถโยกย้ายข้อมูลของคุณได้", + "inProgress": "โปรดรอสักครู่ เรากําลังย้ายข้อมูลของคุณ สิ่งนี้ไม่ควรใช้เวลานาน" + } + }, + "settings": { + "account": { + "accountDetails": { + "deviceNameLabel": "ชื่ออุปกรณ์", + "deviceNamePlaceholder": "โทรศัพท์ส่วนบุคคล", + "editProfile": "แก้ไข", + "logoutButton": "ออกจากระบบ" + }, + "actions": { + "delete": { + "button": "ลบบัญชี", + "confirmButton": "ลบบัญชี", + "confirmDescription": "คุณแน่ใจหรือไม่ว่าต้องการลบบัญชีของคุณ? ข้อมูลทั้งหมดของคุณจะหายไป!", + "confirmTitle": "คุณแน่ใจใช่หรือไม่?", + "text": "การกระทํานี้ไม่สามารถย้อนกลับได้ ข้อมูลทั้งหมดจะถูกลบและไม่มีอะไรสามารถกู้คืนได้", + "title": "ลบบัญชี" + }, + "title": "พฤติกรรม" + }, + "devices": { + "deviceNameLabel": "ชื่ออุปกรณ์", + "failed": "โหลดเซสชันไม่สำเร็จ", + "removeDevice": "ลบ", + "title": "อุปกรณ์" + }, + "profile": { + "finish": "แก้ไขสำเสร็จ", + "firstColor": "สีของโปรไฟล์ 1", + "secondColor": "สีของโปรไฟล์ 2", + "title": "แก้ไขรูปโปรไฟล์", + "userIcon": "สัญลักษณ์ผู้ใช้" + }, + "register": { + "cta": "เริ่มเลย", + "text": "แบ่งปันความคืบหน้าการรับชมระหว่างอุปกรณ์และเชื่อมต่อเข้าด้วยกัน", + "title": "เชื่อมต่อกับคลาวด์" + }, + "title": "บัญชี" + }, + "appearance": { + "activeTheme": "ใช้งาน", + "themes": { + "blue": "ฟ้า", + "default": "ค่าเริ่มต้น", + "gray": "เทา", + "red": "แดง", + "teal": "เขียวแกมน้ำเงิน" + }, + "title": "ธีม" + }, + "connections": { + "server": { + "description": "หากคุณต้องการเชื่อมต่อกับ backend ที่กําหนดเองเพื่อจัดเก็บข้อมูลของคุณ ให้เปิดใช้งานสิ่งนี้และระบุ URL", + "label": "กำหนดเซิร์ฟเวอร์เอง", + "urlLabel": "กําหนด URL เซิร์ฟเวอร์เอง" + }, + "title": "การเชื่อมต่อ", + "workers": { + "addButton": "เพิ่มผู้ช่วยใหม่", + "description": "เพื่อให้แอปพลิเคชันทํางาน การรับส่งข้อมูลทั้งหมดจะถูกส่งผ่านพร็อกซี่ เปิดใช้งานสิ่งนี้หากคุณต้องการนำเข้างานของคุณเอง", + "emptyState": "ยังไม่มีลูกทีม เพิ่มหนึ่งคนด้านล่าง", + "label": "ใช้พร็อกซี่แบบกําหนดเอง", + "urlLabel": "ลูกทีม URLs", + "urlPlaceholder": "https://" + } + }, + "reset": "เริ่มใหม่", + "save": "บันทึก", + "sidebar": { + "info": { + "appVersion": "เวอร์ชันแอป", + "backendUrl": "ระบบจัดการเว็บไซต์ URL", + "backendVersion": "เวอร์ชันหลัก", + "hostname": "ชื่อผู้ใช้", + "insecure": "ไม่ปลอดภัย", + "notLoggedIn": "คุณไม่ได้เข้าสู่ระบบ", + "secure": "ความปลอดภัย", + "title": "ข้อมูลแอปพลิเคชัน", + "unknownVersion": "ไม่ทราบ", + "userId": "รหัสผู้ใช้" + } + }, + "subtitles": { + "backgroundLabel": "ความทึบของพื้นหลัง", + "colorLabel": "สี", + "previewQuote": "คำบรรยายจะมีลักษณะแบบนี้", + "textSizeLabel": "ขนาดข้อความ", + "title": "คำบรรยาย" + }, + "unsaved": "คุณได้บันทึกการเปลี่ยนแปลงแล้ว" + } +} diff --git a/src/assets/locales/tok.json b/src/assets/locales/tok.json new file mode 100644 index 00000000..fee83174 --- /dev/null +++ b/src/assets/locales/tok.json @@ -0,0 +1,390 @@ +{ + "about": { + "description": "ilo Muwi-We li lukin li wile e sitelen. kulupu lawa li lawa pona", + "faqTitle": "sona wile", + "q1": { + "body": "ilo Muwi-We li mama ala e sitelen. sina lukin e sitelen la mi alasa e sitelen lon lipu ale. (sina ken sona e mama sitelen lon tenpo alasa lon poki 'mama'.) sitelen li awen ala lon ilo Muwi-We. ale li lon alasa ni", + "title": "sitelen li tan seme?" + }, + "q2": { + "body": "sina ken ala wile alasa e sitelen. ilo Muwi-We li lawa ala e sitelen. sitelen li tan lipu mama ante", + "title": "mi wile alasa e sitelen lon seme?" + }, + "q3": { + "body": "sitelen lon lukin ilo li tan lipu The Movie Database (lipu TMDB). jo li ante ala e ni", + "title": "sitelen pi wile mi li lon lukin ilo. seme la mi ken ala lukin e ona?" + }, + "title": "ilo Muwi-We la" + }, + "actions": { + "copied": "sama a", + "copy": "o sama" + }, + "auth": { + "createAccount": "sina jo ala e lipu open la <0>o pali e lipu open", + "deviceNameLabel": "nimi ilo", + "deviceNamePlaceholder": "ilo mi", + "generate": { + "description": "nimi open sina li lon nasin open pi lipu open sina. o awen pona e ona. sina open e lipu open sina la sina wile pana e nimi open ale sina", + "next": "mi jo e nimi open mi", + "passphraseFrameLabel": "nimi open", + "title": "nimi open sina" + }, + "hasAccount": "sina jo e lipu open la <0>o pana e nimi sina", + "login": { + "description": "lipu open sina la o sitelen e nimi ale sina", + "deviceLengthError": "o pana e nimi ilo", + "passphraseLabel": "nimi open 12", + "passphrasePlaceholder": "nimi open", + "submit": "o open", + "title": "o pana e nimi sina", + "validationError": "pakala" + }, + "register": { + "information": { + "color1": "kule nanpa wan", + "color2": "kule nanpa tu", + "header": "o pana e nimi pi ilo sina e kule e sitelen", + "icon": "sitelen", + "next": "o pana", + "title": "lipu open" + } + }, + "trust": { + "failed": { + "text": "nasin ale sina li pona anu seme?", + "title": "toki tawa lawa ilo li pakala" + }, + "host": "lawa ilo sina li <0>{{hostname}} - ona li pona tawa sina la sina ken pali e lipu open", + "no": "o weka", + "title": "lawa ilo ni li pona tawa sina anu seme?", + "yes": "lawa ilo ni li pona" + }, + "verify": { + "description": "sina awen e nimi open sina la o pana e nimi open", + "invalidData": "pakala", + "noMatch": "nimi li sama ala", + "passphraseLabel": "nimi open 12 sina", + "recaptchaFailed": "nasin ReCaptcha li pakala", + "register": "o pali e lipu open", + "title": "nimi open sina" + } + }, + "errors": { + "badge": "pakala a", + "details": "pakala", + "reloadPage": "o sin e lipu", + "showError": "o pana e sona pakala", + "title": "mi kama pakala a!" + }, + "footer": { + "legal": { + "disclaimer": "o sona e ni:" + }, + "links": { + "discord": "kulupu Siko", + "dmca": "DMCA", + "github": "lipu Kita" + }, + "tagline": "o lukin e sitelen ale pi wile sina kepeken ilo ni" + }, + "global": { + "name": "ilo Muwi-We", + "pages": { + "about": "o sona", + "dmca": "DMCA", + "login": "o open", + "pagetitle": "{{title}} - ilo Muwi-We", + "register": "o pali open", + "settings": "o ante" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "poki awen" + }, + "continueWatching": { + "sectionTitle": "o awen lukin" + }, + "mediaList": { + "stopEditing": "o pini ante" + }, + "search": { + "allResults": "pini a!", + "failed": "lukin li pakala a! o alasa sin", + "loading": "alasa...", + "noResults": "ijo li lon ala a!", + "placeholder": "sina wile lukin e seme?", + "sectionTitle": "mi lukin e ni:" + }, + "titles": { + "day": { + "default": "tenpo suno ni la sina wile lukin e seme?", + "extra": ["sina pilin alasa la o lukin e sitelen Jurassic Park"] + }, + "morning": { + "default": "tenpo sin ni la sina wile lukin e seme?", + "extra": ["ken la sitelen Before Sunrise li pona"] + }, + "night": { + "default": "tenpo pimeja ni la sina wile lukin e seme?", + "extra": ["sina pilin lape anu seme? o alasa lukin e sitelen Exorcist"] + } + } + }, + "media": { + "episodeDisplay": "S{{season}} E{{episode}}", + "types": { + "movie": "sitelen wan", + "show": "sitelen kulupu" + } + }, + "navigation": { + "banner": { + "offline": "wawa linja sina li seme?" + }, + "menu": { + "about": "mi", + "donation": "o esun", + "logout": "o weka sona e sina", + "register": "Sync to cloud", + "settings": "o ante", + "support": "o supa" + } + }, + "notFound": { + "badge": "lon ala", + "goHome": "o tawa weka", + "message": "mi lukin lon anpa poki, lon insa tomo, lon monsi ilo. taso mi lukin ala e lipu pi wile sina", + "title": "mi ken ala lukin e lipu ona" + }, + "overlays": { + "close": "o pini" + }, + "player": { + "back": { + "default": "o tawa weka", + "short": "o tawa" + }, + "casting": { + "enabled": "mi pana e sitelen tawa ilo ante..." + }, + "menus": { + "downloads": { + "disclaimer": "sina kama jo e sitelen tawa ilo sina tan lipu mama. ilo Muwi-We li lawa ala e nasin jo", + "downloadPlaylist": "o jo e lipu sitelen", + "downloadSubtitle": "o jo e nimi toki", + "downloadVideo": "o jo e sitelen", + "hlsDisclaimer": "jo li tan mama. ilo Muwi-We li lawa ala e nasin jo. o sona e ni: sina jo e lipu sitelen HLS. ni li tawa jan pi sona sitelen", + "onAndroid": { + "1": "ilo Android la o luka e nena 'o jo'. lon lipu sin la o luka wawa e sitelen. o luka e nena 'o jo'", + "shortTitle": "Android ) o jo", + "title": "o jo lon ilo Android" + }, + "onIos": { + "1": "ilo iOS la o luka e nena 'o jo'. lon lipu sin la o luka e , e o jo poki .", + "shortTitle": "iOS ) o jo", + "title": "o jo lon ilo iOS" + }, + "onPc": { + "1": "ilo suli la o luka e nena 'o jo e sitelen'. lon lipu sin la o luka ante e sitelen. o luka e nena 'o jo e sitelen lon nimi ante'", + "shortTitle": "ilo suli ) o jo", + "title": "o jo lon ilo suli" + }, + "title": "kama jo" + }, + "episodes": { + "button": "sitelen mute", + "emptyState": "kulupu ni li jo ala e sitelen. o lukin lon tenpo ante a!", + "episodeBadge": "E{{episode}}", + "loadingError": "alasa li pakala", + "loadingList": "alasa...", + "loadingTitle": "alasa..." + }, + "playback": { + "speedLabel": "tenpo lukin", + "title": "nasin pali" + }, + "quality": { + "automaticLabel": "ilo o lawa", + "hint": "ante pi pona lukin la sina ken <0>ante e mama", + "iosNoQuality": "tan lawa pi esun Apple la ante pi pona lukin li ken ala lon ilo iOS. ante pi pona lukin la o alasa <0>ante e mama", + "title": "pona lukin" + }, + "settings": { + "downloadItem": "o jo", + "enableSubtitles": "nimi toki", + "experienceSection": "nasin lukin", + "playbackItem": "nasin pali", + "qualityItem": "pona lukin", + "sourceItem": "mama sitelen", + "subtitleItem": "nimi toki", + "videoSection": "nasin sitelen" + }, + "sources": { + "failed": { + "text": "lukin sitelen li pakala. o alasa e mama ante.", + "title": "pakala jo" + }, + "noEmbeds": { + "text": "mi lukin ala e lipu. o alasa e mama ante.", + "title": "lipu li lon ala" + }, + "noStream": { + "text": "lipu mama ni li jo ala e sitelen ni", + "title": "sitelen li lon ala" + }, + "title": "mama", + "unknownOption": "mi sona ala" + }, + "subtitles": { + "customChoice": "o pana tan ilo", + "customizeLabel": "o ante", + "offChoice": "ala", + "settings": { + "backlink": "nimi toki ante", + "delay": "o ante e tenpo nimi", + "fixCapitals": "o pona e suli nimi" + }, + "title": "nimi toki", + "unknownLanguage": "mi sona ala" + } + }, + "metadata": { + "failed": { + "badge": "pakala", + "homeButton": "o tawa weka", + "text": "mi pakala alasa e sona sitelen tan lipu TMDB. ken la ona li lape anu moli", + "title": "mi pakala alasa e sona sitelen" + }, + "notFound": { + "badge": "lon ala", + "homeButton": "o tawa weka", + "text": "mi lukin ala e lipu pi wile sina. lipu li weka anu ante", + "title": "mi lukin ala e ona" + } + }, + "nextEpisode": { + "cancel": "o ala", + "next": "o sitelen sin" + }, + "playbackError": { + "badge": "pakala lukin", + "errors": { + "errorAborted": "jan li pini alasa e sitelen", + "errorDecode": "sitelen li kama ante la pakala li kama lon", + "errorGenericMedia": "pakala sitelen pi sona ala li lon", + "errorNetwork": "pakala linja li pakala e alasa sitelen", + "errorNotSupported": "mi ken ala supa e sitelen anu mama sitelen" + }, + "homeButton": "o tawa weka", + "text": "mi alasa lukin e sitelen. taso pakala li lon. o alasa sin", + "title": "mi pakala lukin a" + }, + "scraping": { + "items": { + "failure": "mi pakala", + "notFound": "sitelen li lon ala", + "pending": "mi alasa e sitelen..." + }, + "notFound": { + "badge": "lon ala", + "detailsButton": "o pana e sona", + "homeButton": "o tawa weka", + "text": "mi lukin e lipu mama ale mi. taso mi lukin ala e ijo pi wile sina. mi mama ala e sitelen. mi lawa ala e sitelen. o luka e nena anpa", + "title": "mi lukin ala e ona" + } + }, + "time": { + "regular": "{{timeWatched}} / {{duration}}", + "remaining": "tenpo {{timeLeft}} la o awen • tenpo {{timeFinished, datetime}} la ona li pini", + "shortRegular": "{{timeWatched}}", + "shortRemaining": "-{{timeLeft}}" + } + }, + "screens": { + "dmca": { + "title": "DMCA" + }, + "loadingApp": "mi alasa e ilo", + "loadingUser": "mi alasa e lipu sina", + "loadingUserError": { + "logout": "o weka sona e sina", + "reset": "o sin e lawa ilo sina", + "text": "alasa li pakala", + "textWithReset": "alasa tan lawa ilo sina li pakala. sina wile e lawa ilo mi anu seme?" + }, + "migration": { + "inProgress": "o awen lili. mi alasa tawa e sona sina" + } + }, + "settings": { + "account": { + "accountDetails": { + "deviceNameLabel": "nimi ilo", + "deviceNamePlaceholder": "ilo", + "editProfile": "o ante", + "logoutButton": "o weka sona e ona" + }, + "actions": { + "delete": { + "button": "o weka e ale", + "confirmButton": "o weka e ale", + "confirmDescription": "weka ni li suli li wawa mute a! sona ale sina li ken ala kama lon tenpo ante a!", + "confirmTitle": "sina wile e ni anu seme?", + "text": "tenpo kama la sina ken ala ante e weka ni. ale li kama weka", + "title": "o weka e ale" + }, + "title": "pali" + }, + "devices": { + "deviceNameLabel": "nimi ilo", + "failed": "alasa li pakala", + "removeDevice": "o weka", + "title": "ilo" + }, + "profile": { + "finish": "o ante", + "firstColor": "kule nanpa wan", + "secondColor": "kule nanpa tu", + "title": "o ante e sitelen", + "userIcon": "sitelen" + }, + "register": { + "cta": "o open", + "text": "o sama e lipu open sina tawa ilo sina ante", + "title": "o sama e lipu" + }, + "title": "lipu open" + }, + "appearance": { + "activeTheme": "lon", + "themes": { + "blue": "laso", + "default": "sama", + "gray": "pimeja", + "red": "loje", + "teal": "laso walo" + }, + "title": "kule" + }, + "connections": { + "server": { + "description": "sina wile e poki sona ante la o pana e nimi ona lon ni", + "label": "lawa ante", + "urlLabel": "nimi pi lawa ante" + }, + "title": "kulupu" + }, + "reset": "o weka e ante", + "save": "o ante", + "subtitles": { + "backgroundLabel": "kon", + "colorLabel": "kule", + "previewQuote": "kijetesantakalu tonsi li lanpan ala lanpan e soko?", + "textSizeLabel": "suli", + "title": "nimi toki" + }, + "unsaved": "ante sina li awen ala" + } +} diff --git a/src/assets/locales/tr.json b/src/assets/locales/tr.json new file mode 100644 index 00000000..784f8540 --- /dev/null +++ b/src/assets/locales/tr.json @@ -0,0 +1,428 @@ +{ + "about": { + "description": "sudo-flix internette akışlar için tarama yapan bir web uygulamasıdır. Ekip, içerik tüketmeye karşı ekseriyetle minimalist bir yaklaşım sergilemektedir.", + "faqTitle": "Sıkça sorulan sorular", + "q1": { + "body": "sudo-flix herhangi bir içerik barındırmaz. İzlemek için bir şeye tıkladığınızda, seçilen medya için internette arama yapılır (Yükleme ekranında ve 'video kaynakları' sekmesinde hangi kaynağı kullandığınızı görebilirsiniz). Medya hiçbir zaman sudo-flix tarafından yüklenmez, her şey bu arama mekanizması aracılığıyla gerçekleşir.", + "title": "İçerikler nereden geliyor?" + }, + "q2": { + "body": "Bir dizi veya film talep etmek mümkün değildir, sudo-flix içeriklerin hiçbirini yönetmez. Tüm içerikler internet üzerindeki kaynaklar aracılığıyla görüntülenir.", + "title": "Bir dizi veya filmi nereden talep edebilirim?" + }, + "q3": { + "body": "Arama sonuçlarımız The Movie Database (TMDB) tarafından desteklenmektedir ve kaynaklarımızın içeriğe gerçekten sahip olup olmadığına bakılmaksızın görüntülenir.", + "title": "Arama sonuçları diziyi veya filmi gösteriyor, neden oynatamıyorum?" + }, + "title": "sudo-flix hakkında" + }, + "actions": { + "copied": "Kopyalandı", + "copy": "Kopyala" + }, + "auth": { + "createAccount": "Henüz bir hesabınız yok mu? <0>Hesap oluşturun.", + "deviceNameLabel": "Cihaz ismi", + "deviceNamePlaceholder": "Kişisel telefon", + "generate": { + "description": "Şifreleme anahtarınız, kullanıcı adınız ve parolanız olarak işlev görür. Hesabınıza giriş yapmak için bu parolayı girmeniz gerekeceğinden onu güvende tuttuğunuzdan emin olun", + "next": "Şifreleme anahtarımı kaydettim", + "passphraseFrameLabel": "Şifreleme anahtarı", + "title": "Şifreleme anahtarınız" + }, + "hasAccount": "Zaten hesabınız var mı?<0>Giriş yapın.", + "login": { + "description": "Hesabınıza giriş yapmak için lütfen şifreleme anahtarınızı girin", + "deviceLengthError": "Lütfen bir cihaz ismi girin", + "passphraseLabel": "12 kelimelik şifreleme anahtarı", + "passphrasePlaceholder": "Şifreleme anahtarı", + "submit": "Giriş yap", + "title": "Hesabınıza giriş yapın", + "validationError": "Yanlış veya eksik şifreleme anahtarı" + }, + "register": { + "information": { + "color1": "Birinci hesap rengi", + "color2": "İkinci hesap rengi", + "header": "Cihazınız için bir isim girin, zevkinize göre renk ve kullanıcı simgesi seçin", + "icon": "Kullanıcı simgesi", + "next": "İleri", + "title": "Hesap bilgisi" + } + }, + "trust": { + "failed": { + "text": "Doğru şekilde yapılandırdınız mı?", + "title": "Sunucuya ulaşılamadı" + }, + "host": "<0>{{hostname}} adlı sunucuya bağlanıyorsunuz - lütfen hesap oluşturmadan önce sunucuya güvendiğinizi onaylayın", + "no": "Geri dön", + "title": "Bu sunucuya güveniyor musunuz?", + "yes": "Bu sunucuya güveniyorum" + }, + "verify": { + "description": "Kaydettiğinizi doğrulamak ve hesabınızı oluşturmak için önceki aşamada gösterilen şifreleme anahtarınızı girin", + "invalidData": "Veri geçersiz", + "noMatch": "Şifreleme anahtarı eşleşmiyor", + "passphraseLabel": "12 kelimelik şifreleme anahtarınız", + "recaptchaFailed": "ReCaptcha doğrulaması başarısız", + "register": "Hesap oluştur", + "title": "Şifreleme anahtarınızı doğrulayın" + } + }, + "errors": { + "badge": "Bir şeyler ters gitti", + "details": "Hata detayları", + "reloadPage": "Sayfayı yenile", + "showError": "Hata ayrıntılarını göster", + "title": "Bir hatayla karşılaştık!" + }, + "footer": { + "legal": { + "disclaimer": "Sorumluluk Reddi", + "disclaimerText": "sudo-flix herhangi bir dosya barındırmaz, yalnızca 3. parti hizmetlere bağlantı verir. Yasal meseleler, dosya barındırıcıları ve sağlayıcıları ile görüşülmelidir. sudo-flix, video sağlayıcıları tarafından gösterilen hiçbir medya dosyasından sorumlu değildir." + }, + "links": { + "discord": "Discord", + "dmca": "DMCA", + "github": "GitHub" + }, + "tagline": "Bu açık kaynaklı akış uygulamasıyla en sevdiğiniz dizileri ve filmleri izleyin." + }, + "global": { + "name": "sudo-flix", + "pages": { + "about": "Hakkında", + "dmca": "DMCA", + "login": "Giriş yap", + "pagetitle": "{{title}} - sudo-flix", + "register": "Kayıt ol", + "settings": "Ayarlar" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "Yerimleri" + }, + "continueWatching": { + "sectionTitle": "İzlemeye devam edin" + }, + "mediaList": { + "stopEditing": "Düzenlemeyi bırak" + }, + "search": { + "allResults": "Bu kadarını bulabildik!", + "failed": "Medya bulunamadı, tekrar deneyin!", + "loading": "Yükleniyor...", + "noResults": "Hiçbir şey bulamadık!", + "placeholder": "Ne izlemek istersiniz?", + "sectionTitle": "Arama sonuçları" + }, + "titles": { + "day": { + "default": "Bu öğleden sonra ne izlemek istersiniz?", + "extra": [ + "Maceraperest mi hissediyorsun? Jurassic Park iyi bir seçim olabilir." + ] + }, + "morning": { + "default": "Bu sabah ne izlemek istersiniz?", + "extra": ["Before Sunrise'a iyi diyorlar"] + }, + "night": { + "default": "Bu akşam ne izlemek istersiniz?", + "extra": ["Yoruldun mu? The Exorcist'e iyi diyorlar."] + } + } + }, + "media": { + "episodeDisplay": "S{{season}} B{{episode}}", + "types": { + "movie": "Film", + "show": "Dizi" + } + }, + "navigation": { + "banner": { + "offline": "İnternet bağlantınızı kontrol ediniz" + }, + "menu": { + "about": "Hakkımızda", + "donation": "Bağış yap", + "logout": "Çıkış yap", + "register": "Buluta eşitle", + "settings": "Ayarlar", + "support": "Destekle" + } + }, + "notFound": { + "badge": "Bulunamadı", + "goHome": "Ana sayfaya dön", + "message": "Her yere baktık: bazanın altına, dolabın içine hatta ara sunucuya ama maalesef aradığınız sayfayı bulamadık.", + "title": "Sayfa bulunamadı" + }, + "overlays": { + "close": "Kapat" + }, + "player": { + "back": { + "default": "Ana sayfaya dön", + "short": "Geri dön" + }, + "casting": { + "enabled": "Cihaza yansıtılıyor..." + }, + "menus": { + "downloads": { + "disclaimer": "İndirme bağlantıları doğrudan sağlayıcının kendisinden alınır. sudo-flix'in sağlanan indirme bağlantıları üzerinde hiçbir konrolü yoktur.", + "downloadPlaylist": "Oynatma listesini indir", + "downloadSubtitle": "Geçerli altyazıyı indir", + "downloadVideo": "Videoyu indir", + "hlsDisclaimer": "İndirme bağlantıları doğrudan sağlayıcının kendisinden alınır. sudo-flix'in sağlanan indirme bağlantıları üzerinde hiçbir konrolü yoktur. Lütfen bir HLS oynatma listesi indirdiğinizi unutmayın; bu, gelişmiş multimedya akışına aşina olan kullanıcılara yöneliktir.", + "onAndroid": { + "1": "Android'e indirmek için önce indir butonuna basın, sonra açılan yeni sayfada video üzerine basılı tutun, ardından Videoyu indir seçeneğini seçin.", + "shortTitle": "İndir / Android", + "title": "Android'e indirme" + }, + "onIos": { + "1": "iOS'a indirmek için öncelikle indir butonuna basın, sonra açılan yeni sayfada 'e basın, hemen ardından Dosyalara Kaydet 'e basın.", + "shortTitle": "İndir / iOS", + "title": "iOS'a indirme" + }, + "onPc": { + "1": "Bilgisayarda önce indir butonuna tıklayın, sonra ise açılan yeni sayfada videoya sağ tıklayın ve Videoyu farklı kaydet seçeneğini seçin", + "shortTitle": "İndir / Bilgisayar", + "title": "Bilgisayara indirme" + }, + "title": "İndir" + }, + "episodes": { + "button": "Bölümler", + "emptyState": "Bu sezonda hiç bölüm yok, sonra tekrar deneyin!", + "episodeBadge": "B{{episode}}", + "loadingError": "Sezon yüklenirken hata oluştu", + "loadingList": "Yükleniyor...", + "loadingTitle": "Yükleniyor...", + "unairedEpisodes": "Bu sezondaki bir veya daha fazla bölüm henüz yayınlanmadığı için devre dışı bırakılmıştır." + }, + "playback": { + "speedLabel": "Oynatma hızı", + "title": "Oynatma ayarları" + }, + "quality": { + "automaticLabel": "Otomatik kalite", + "hint": "Farklı kalite seçenekleri elde etmek için <0>kaynak değiştirmeyi deneyebilirsiniz.", + "iosNoQuality": "Apple tarafından tanımlanan sınırlamalar nedeniyle, iOS'ta bu kaynak için kalite seçimi mevcut değildir. Farklı kalite seçenekleri elde etmek için <0>başka bir kaynağa geçmeyi deneyebilirsiniz.", + "title": "Kalite" + }, + "settings": { + "downloadItem": "İndir", + "enableSubtitles": "Altyazıları Etkinleştir", + "experienceSection": "İzleme deneyimi", + "playbackItem": "Oynatma ayarları", + "qualityItem": "Kalite", + "sourceItem": "Video kaynakları", + "subtitleItem": "Altyazı ayarları", + "videoSection": "Video ayarları" + }, + "sources": { + "failed": { + "text": "Video bulunmaya çalışılırken sorun oluştu, lütfen farklı bir kaynak deneyin.", + "title": "Video alınırken sorun oluştu" + }, + "noEmbeds": { + "text": "Herhangi bir video bulamadık, lütfen farklı bir kaynak deneyin.", + "title": "Video bulunamadı" + }, + "noStream": { + "text": "Bu kaynakta bu film ya da dizi için akış bulunmamaktadır.", + "title": "Akış yok" + }, + "title": "Kaynaklar", + "unknownOption": "Bilinmeyen" + }, + "subtitles": { + "customChoice": "Altyazı dosyası yükle", + "customizeLabel": "Seçenekler", + "offChoice": "Kapat", + "settings": { + "backlink": "Kişisel altyazılar", + "delay": "Altyazı gecikmesi", + "fixCapitals": "Büyük harf kullanımını düzelt" + }, + "title": "Altyazılar", + "unknownLanguage": "Bilinmeyen" + } + }, + "metadata": { + "api": { + "text": "API üstverisi yüklenemedi, lütfen internet bağlantınızı kontrol edin.", + "title": "API üstverisi yüklenemedi" + }, + "failed": { + "badge": "Başarısız oldu", + "homeButton": "Ana sayfaya dön", + "text": "Medyanın üstverisi TMDB'den alınamadı. Lütfen TMDB'nin göküp çökmediğini veya internet bağlantınız üzerinden engellenmediğini kontrol edin.", + "title": "Üstveri yüklenemedi" + }, + "notFound": { + "badge": "Bulunamadı", + "homeButton": "Ana sayfaya dön", + "text": "İstediğiniz medyayı bulamadık. URL'yi yanlış girdiniz ya da medya kaldırıldı.", + "title": "Medya bulunamadı." + } + }, + "nextEpisode": { + "cancel": "Vazgeç", + "next": "Sonraki bölüm" + }, + "playbackError": { + "badge": "Oynatma hatası", + "errors": { + "errorAborted": "Medyanın alınması kullanıcının isteği üzerine iptal edildi.", + "errorDecode": "Daha önce kullanılabilir olduğu belirlenmiş olmasına rağmen, medya kaynağının kodu çözülmeye çalışılırken bir hata oluştu ve bu da bir hataya neden oldu.", + "errorGenericMedia": "Bilinmeyen medya hatası oluştu.", + "errorNetwork": "Medya önceden mevcut olsa da başarıyla alınmasını engelleyen bir tür ağ hatası oluştu.", + "errorNotSupported": "Medya veya medya sağlayıcısı desteklenmiyor." + }, + "homeButton": "Ana sayfaya git", + "text": "Medya oynatılmaya çalışılırken bir hata oluştu. Lütfen tekrar deneyin.", + "title": "Video oynatılamadı!" + }, + "scraping": { + "items": { + "failure": "Hata oluştu", + "notFound": "Video mevcut değil", + "pending": "Videolar aranıyor..." + }, + "notFound": { + "badge": "Bulunamadı", + "detailsButton": "Ayrıntıları göster", + "homeButton": "Ana sayfaya git", + "text": "Sağlayıcılarımız arasında arama yaptık ve aradığınız medyayı bulamadık! Medyaları barındırmıyoruz ve mevcut olanlar üzerinde hiçbir kontrolümüz yok. Daha fazla ayrıntı için lütfen aşağıdaki 'Ayrıntıları göster' seçeneğine tıklayın.", + "title": "Bunu bulamadık" + } + }, + "time": { + "regular": "{{timeWatched}} / {{duration}}", + "remaining": "{{timeLeft}} kaldı • {{timeFinished, datetime}}'de bitiyor", + "shortRegular": "{{timeWatched}}", + "shortRemaining": "-{{timeLeft}}" + }, + "turnstile": { + "description": "Lütfen sağ taraftaki Captcha'yı çözerek insan olduğunuzu doğrulayın. Bu, sudo-flix'i güvende tutmak içindir!", + "error": "İnsan olduğunuz doğrulanamadı. Lütfen tekrar deneyin.", + "title": "İnsan olduğunuzu doğrulamamız gerekiyor.", + "verifyingHumanity": "İnsan olduğunuz doğrulanıyor..." + } + }, + "screens": { + "dmca": { + "text": "sudo-flix'in DMCA iletişim sayfasına hoş geldiniz! Fikri mülkiyet haklarına saygı duyuyoruz ve telif hakkıyla ilgili endişeleri hızlı bir şekilde ele almak istiyoruz. Telif hakkıyla korunan çalışmanızın platformumuzda uygunsuz şekilde kullanıldığını düşünüyorsanız lütfen aşağıdaki e-postaya ayrıntılı bir DMCA bildirimi gönderin. Lütfen telif hakkıyla korunan materyalin açıklamasını, iletişim bilgilerinizi ve iyi niyet beyanınızı ekleyin. Bu sorunları derhal çözmeye kararlıyız ve ayrıca sudo-flix'i yaratıcılığa ve telif haklarına saygılı bir yer olarak tutma konusundaki işbirliğiniz için teşekkür ederiz.", + "title": "DMCA" + }, + "loadingApp": "Uygulama yükleniyor", + "loadingUser": "Profiliniz yükleniyor", + "loadingUserError": { + "logout": "Çıkış yap", + "reset": "Özel sunucuyu sıfırla", + "text": "Profiliniz yüklenemedi", + "textWithReset": "Profiliniz özel sunucunuzdan yüklenemedi, varsayılan sunucuya sıfırlamak ister misiniz?" + }, + "migration": { + "failed": "Verileriniz taşınamadı.", + "inProgress": "Lütfen bekleyin, verilerinizi taşıyoruz. Bu çok uzun sürmez." + } + }, + "settings": { + "account": { + "accountDetails": { + "deviceNameLabel": "Cihaz adı", + "deviceNamePlaceholder": "Kişisel telefon", + "editProfile": "Düzenle", + "logoutButton": "Çıkış yap" + }, + "actions": { + "delete": { + "button": "Hesabı sil", + "confirmButton": "Hesabı sil", + "confirmDescription": "Hesabınızı silmek istediğinize emin misiniz? Tüm verileriniz kaybedilecek!", + "confirmTitle": "Emin misiniz?", + "text": "Bu işlem geri alınamaz. Tüm veriler silinir ve hiçbir şey kurtarılamaz.", + "title": "Hesabı sil" + }, + "title": "Eylemler" + }, + "devices": { + "deviceNameLabel": "Cihaz adı", + "failed": "Oturumlar yüklenemedi", + "removeDevice": "Sil", + "title": "Cihazlar" + }, + "profile": { + "finish": "Düzenlemeyi bitir", + "firstColor": "Birinci profil rengi", + "secondColor": "İkinci profil rengi", + "title": "Profil resmini düzenle", + "userIcon": "Kullanıcı simgesi" + }, + "register": { + "cta": "Hadi başlayalım", + "text": "İzleme ilerlemenizi cihazlar arasında paylaşın ve eşit tutun.", + "title": "Buluta eşitle" + }, + "title": "Hesap" + }, + "appearance": { + "activeTheme": "Aktif", + "themes": { + "blue": "Mavi", + "default": "Varsayılan", + "gray": "Gri", + "red": "Kırmızı", + "teal": "Turkuaz" + }, + "title": "Görünüm" + }, + "connections": { + "server": { + "description": "Verilerinizi depolamak için özel bir arkayüze bağlanmak istiyorsanız, bunu etkinleştirin ve URL'yi sağlayın. <0>Yönergeler.", + "label": "Özel sunucu", + "urlLabel": "Özel sunucu URL'si" + }, + "title": "Bağlantılar", + "workers": { + "addButton": "Yeni işleyici ekle", + "description": "Uygulamanın çalışması için tüm trafik vekil sunucular üzerinden yönlendirilir. Kendi işleyicilerinizi getirmek istiyorsanız bunu etkinleştirin.<0>Yönergeler.", + "emptyState": "Henüz işleyici yok, aşağıya bir tane ekleyin", + "label": "Özel vekil sunucu işleyici kullan", + "urlLabel": "İşleyici URL'leri", + "urlPlaceholder": "https://" + } + }, + "reset": "Sıfırla", + "save": "Kaydet", + "sidebar": { + "info": { + "appVersion": "Uygulama sürümü", + "backendUrl": "Arkayüz URL'si", + "backendVersion": "Arkayüz sürümü", + "hostname": "Ana makine adı", + "insecure": "Güvensiz", + "notLoggedIn": "Giriş yapmadınız", + "secure": "Güvenli", + "title": "Uygulama bilgisi", + "unknownVersion": "Bilinmeyen", + "userId": "Kullanıcı Kimliği" + } + }, + "subtitles": { + "backgroundLabel": "Arka plan opaklığı", + "colorLabel": "Renk", + "previewQuote": "Korkmamalıyım. Korku aklın katilidir.", + "textSizeLabel": "Yazı boyutu", + "title": "Altyazılar" + }, + "unsaved": "Kaydedilmemiş değişiklikleriniz mevcut" + } +} diff --git a/src/assets/locales/uk.json b/src/assets/locales/uk.json new file mode 100644 index 00000000..cef2eb22 --- /dev/null +++ b/src/assets/locales/uk.json @@ -0,0 +1,528 @@ +{ + "about": { + "description": "sudo-flix це веб-додаток, який шукає інтернет для стрімінгових відтворень. Команда прагне до мінімалістичного стилю в споживанні контенту.", + "faqTitle": "Загальні питання", + "q1": { + "body": "sudo-flix не зберігає жодного контенту. Коли ви натискаєте щось для перегляду, в Інтернеті виконується пошук вибраного медіа (на екрані завантаження та на вкладці «джерела відео» ви можете побачити, яке джерело ви використовуєте). Медіафайли ніколи не завантажуються за допомогою \"sudo-flix\", усе відбувається через цей механізм пошуку.", + "title": "Звідки береться вміст?" + }, + "q2": { + "body": "Неможливо подати запит на шоу чи фільм, оскільки sudo-flix не керує жодним вмістом. Весь контент переглядається через джерела в Інтернеті.", + "title": "Де я можу подати запит на шоу чи фільм?" + }, + "q3": { + "body": "Наші результати пошуку надходять від The Movie Database (TMDB) і відображаються незалежно від того, чи насправді є вміст у наших джерелах.", + "title": "Результати пошуку відображають шоу чи фільм, чому я не можу його відтворити?" + }, + "title": "Про sudo-flix" + }, + "actions": { + "copied": "Скопійовано", + "copy": "Копіювати" + }, + "auth": { + "createAccount": "У вас ще немає облікового запису? <0>Створити обліковий запис.", + "deviceNameLabel": "Ім'я пристрою", + "deviceNamePlaceholder": "Особистий телефон", + "generate": { + "description": "Ваша парольна фраза виступає як ваше ім'я користувача та пароль. Переконайтеся, що ви зберігаєте його в безпеці, оскільки вам буде потрібно вводити його для входу в свій обліковий запис", + "next": "Я зберіг(ла) свою парольну фразу", + "passphraseFrameLabel": "Парольна фраза", + "title": "Ваша парольна фраза" + }, + "hasAccount": "Вже є аккаунт? <0>Увійдіть тут.", + "login": { + "description": "Будь ласка, введіть свій пароль для входу до вашого облікового запису", + "deviceLengthError": "Будь ласка, введіть назву пристрою", + "passphraseLabel": "Парольна фраза з 12 слів", + "passphrasePlaceholder": "Парольна фраза", + "submit": "Логін", + "title": "Увійти до свого облікового запису", + "validationError": "Неправильна або неповна парольна фраза" + }, + "register": { + "information": { + "color1": "Перший колір профілю", + "color2": "Другий колір профілю", + "header": "Введіть ім'я для вашого пристрою та виберіть кольори та іконку користувача за вашим бажанням", + "icon": "Іконка користувача", + "next": "Наступний", + "title": "Інформація про обліковий запис" + } + }, + "trust": { + "failed": { + "text": "Чи ви налаштували це правильно?", + "title": "Не вдалося зв’язатися з сервером" + }, + "host": "Ви під’єднуєтеся до <0>{{hostname}} – підтвердьте, що довіряєте йому, перш ніж створювати обліковий запис", + "no": "Повернутися назад", + "title": "Чи довіряєте ви цьому серверу?", + "yes": "Я довіряю цьому серверу" + }, + "verify": { + "description": "Будь ласка, введіть свою парольну фразу, яка була раніше, щоб підтвердити її збереження та створити обліковий запис", + "invalidData": "Дані недійсні", + "noMatch": "Парольна фраза не збігається", + "passphraseLabel": "Ваша парольна фраза з 12 слів", + "recaptchaFailed": "Валідація капчі не вдалася", + "register": "Створити акаунт", + "title": "Підтвердьте свою парольну фразу" + } + }, + "errors": { + "badge": "Це зламалося", + "details": "Деталі помилки", + "reloadPage": "Перезавантажити сторінку", + "showError": "Показати деталі помилки", + "title": "Ми зіткнулися з помилкою!" + }, + "footer": { + "legal": { + "disclaimer": "Застереження", + "disclaimerText": "sudo-flix не містить жодних файлів, він лише посилається на сторонні служби. Юридичні питання слід вирішувати з хостами та провайдерами файлів. sudo-flix не несе відповідальності за будь-які медіафайли, показані постачальниками відео." + }, + "links": { + "discord": "Діскорд", + "dmca": "DMCA", + "github": "GitHub" + }, + "tagline": "Дивіться свої улюблені шоу та фільми за допомогою цього відкритого стрімінгового додатка." + }, + "global": { + "name": "sudo-flix", + "pages": { + "about": "Про", + "dmca": "DMCA", + "login": "Логін", + "onboarding": "Встановлення", + "pagetitle": "{{title}} - sudo-flix", + "register": "Зареєструватися", + "settings": "Налаштування" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "Закладки" + }, + "continueWatching": { + "sectionTitle": "Продовжити перегляд" + }, + "mediaList": { + "stopEditing": "Зупинити редагування" + }, + "search": { + "allResults": "Це все, що ми маємо!", + "failed": "Не вдалося знайти медіафайли, повторіть спробу!", + "loading": "Завантаження...", + "noResults": "Ми не змогли знайти нічого!", + "placeholder": "Що ви хочете подивитися?", + "sectionTitle": "Результати пошуку" + }, + "titles": { + "day": { + "default": "Що б ви хотіли подивитися сьогодні вдень?", + "extra": [ + "Хочете пригод? Парк Юрського періоду може стати ідеальним вибором." + ] + }, + "morning": { + "default": "Що б ви хотіли подивитися сьогодні вранці?", + "extra": ["Я чув, що \"Перед сходом сонця\" гарний"] + }, + "night": { + "default": "Що б ви хотіли подивитися сьогодні ввечері?", + "extra": ["Втомився? Я чув, що \"Екзорцист\" хороший."] + } + } + }, + "media": { + "episodeDisplay": "С{{season}} Е{{episode}}", + "types": { + "movie": "Фільм", + "show": "Шоу" + } + }, + "navigation": { + "banner": { + "offline": "Перевірте підключення до Інтернету" + }, + "menu": { + "about": "Про нас", + "donation": "Пожертвуйте", + "logout": "Вийти", + "register": "Синхронізація з хмарою", + "settings": "Налаштування", + "support": "Підтримка" + } + }, + "notFound": { + "badge": "Не знайдено", + "goHome": "На головну", + "message": "Ми шукали всюди: під смітниками, у шафі, за проксі-сервером, але зрештою не змогли знайти сторінку, яку ви шукали.", + "title": "Не вдалося знайти цю сторінку" + }, + "onboarding": { + "defaultConfirm": { + "cancel": "Скасувати", + "confirm": "Використовувати налаштування за умовчанням", + "description": "Налаштування за замовчуванням не мають найкращих потоків і можуть бути нестерпно повільними.", + "title": "Ви впевнені?" + }, + "extension": { + "back": "Повернутись назад", + "explainer": "Використовуючи розширення для браузера, ви можете отримати найякісніші трансляції, які ми можемо запропонувати. Просто встановивши його.", + "extensionHelp": "Якщо ви встановили розширення, але воно не виявлено. Відкрийте розширення в меню розширень вашого браузеру і дотримуйтеся вказівок на екрані.", + "status": { + "disallowed": "Розширення не ввімкнено для цієї сторінки", + "disallowedAction": "Активувати розширення", + "failed": "Не вдалося отримати статус", + "loading": "Очікуємо, поки ви встановите розширення", + "outdated": "Версія розширення застаріла", + "success": "Розширення працює як очікувалося!" + }, + "submit": "Продовжити", + "title": "Почати використовувати розширення" + }, + "proxy": { + "back": "Повернутись назад", + "explainer": "З використанням проксі ви можете отримати високоякісні потоки, створивши самостійний проксі-сервіс.", + "input": { + "errorConnection": "Не вдалося підключитися до проксі", + "errorInvalidUrl": "Не валідний URL", + "errorNotProxy": "Очікувався проксі, але отримано вебсайт", + "label": "URL проксі", + "placeholder": "https://" + }, + "link": "Дізнайтесь як створити проксі", + "submit": "Надати проксі", + "title": "Давайте створимо новий проксі" + }, + "start": { + "explainer": "Щоб отримати найкращу трансляцію. Вам потрібно буде вибрати, який метод стрімінгу ви хочете використовувати.", + "options": { + "default": { + "text": "Мені не потрібна хороша якість потоків,<0 /> <1>використовувати налаштування за замовчуванням" + }, + "extension": { + "action": "Встановити розширення", + "description": "Встановіть розширення для браузера та отримайте доступ до найкращих джерел.", + "quality": "Найкраща якість", + "title": "Розширення браузера" + }, + "proxy": { + "action": "Налаштування проксі", + "description": "Налаштуйте проксі всього за 5 хвилин і отримайте доступ до чудових джерел.", + "quality": "Гарна якість", + "title": "Користувацький проксі" + } + }, + "title": "Давайте налаштуємо вам sudo-flix" + } + }, + "overlays": { + "close": "Закрити" + }, + "player": { + "back": { + "default": "На головну", + "short": "Назад" + }, + "casting": { + "enabled": "Трансляція на пристрій..." + }, + "menus": { + "downloads": { + "disclaimer": "Завантаження беруться безпосередньо від провайдера. У sudo-flix немає контролю над тим, як надаються завантаження.", + "downloadPlaylist": "Завантажити плейлист", + "downloadSubtitle": "Завантажити поточні субтитри", + "downloadVideo": "Завантажити відео", + "hlsDisclaimer": "Завантаження виконуються безпосередньо від постачальника. У sudo-flix немає контролю над тим, як надаються завантаження.

    Зверніть увагу, що ви завантажуєте список відтворення HLS, його не рекомендується завантажувати, якщо ви не знайомі з розширеними форматами потокового передавання. Спробуйте різні джерела для інших форматів.", + "onAndroid": { + "1": "Щоб завантажити на Android, натисніть кнопку завантаження, потім на новій сторінці торкніться й утримуйте відео, а потім виберіть зберегти.", + "shortTitle": "Завантажити / Android", + "title": "Завантажити на Android" + }, + "onIos": { + "1": "Щоб завантажити на iOS, натисніть кнопку завантаження, далі на новій сторінці, натисніть , а потім Зберегти у файли .", + "shortTitle": "Завантажити / iOS", + "title": "Завантаження на iOS" + }, + "onPc": { + "1": "На комп'ютері натисніть кнопку завантаження, далі на новій вкладці клацніть правим кліком по відео та виберіть Зберегти відео як", + "shortTitle": "Завантажити / Комп'ютер", + "title": "Завантаження на комп'ютер" + }, + "title": "Завантажити" + }, + "episodes": { + "button": "Епізоди", + "emptyState": "У цьому сезоні немає серій, перевірте пізніше!", + "episodeBadge": "Е{{episode}}", + "loadingError": "Помилка завантаження сезону", + "loadingList": "Завантаження...", + "loadingTitle": "Завантаження...", + "unairedEpisodes": "Один або кілька епізодів у цьому сезоні недоступні, оскільки вони ще не вийшли в ефір." + }, + "playback": { + "speedLabel": "Швидкість відтворення", + "title": "Налаштування відтворення" + }, + "quality": { + "automaticLabel": "Якість автоматична", + "hint": "Спробуйте <0>переключити джерело, аби отримати інші варіанти якості.", + "iosNoQuality": "Через обмеження, встановлені Apple, вибір якості не доступний у системі iOS для цього джерела. Ви можете спробувати <0>змінити джерело, щоб отримати інші варіанти якості.", + "title": "Якість" + }, + "settings": { + "downloadItem": "Завантажити", + "enableSubtitles": "Увімкнути субтитри", + "experienceSection": "Враження від перегляду", + "playbackItem": "Налаштування відтворення", + "qualityItem": "Якість", + "sourceItem": "Джерела відео", + "subtitleItem": "Налаштування субтитрів", + "videoSection": "Налаштування відео" + }, + "sources": { + "failed": { + "text": "Під час спроби знайти будь-яке відео сталася помилка. Спробуйте інше джерело.", + "title": "Не вдалося отримати дані" + }, + "noEmbeds": { + "text": "Ми не змогли знайти жодних вставок. Будь ласка, спробуйте інше джерело.", + "title": "Не знайдено вбудованих елементів" + }, + "noStream": { + "text": "Це джерело не має потоків для цього фільму чи шоу.", + "title": "Немає потоку" + }, + "title": "Джерела", + "unknownOption": "Невідомий" + }, + "subtitles": { + "customChoice": "Виберіть субтитри з файлу", + "customizeLabel": "Налаштувати", + "offChoice": "Вимкнено", + "settings": { + "backlink": "Власні субтитри", + "delay": "Затримка субтитрів", + "fixCapitals": "Виправити використання великих літер" + }, + "title": "Субтитри", + "unknownLanguage": "Невідомий" + } + }, + "metadata": { + "api": { + "text": "Не вдалося завантажити метадані API, перевірте підключення до Інтернету.", + "title": "Не вдалося завантажити метадані API" + }, + "dmca": { + "badge": "Видалено", + "text": "Це медіа більше не доступне через повідомлення про видалення або позов про порушення авторських прав.", + "title": "Медіа було видалено" + }, + "extensionPermission": { + "badge": "Дозвіл Відсутній", + "button": "Використовувати розширення", + "text": "У вас вже є розширення для браузера, але нам потрібен ваш дозвіл, щоб почати використовувати його.", + "title": "Налаштуйте продовження" + }, + "failed": { + "badge": "Не вдалося", + "homeButton": "Повернутися на головну", + "text": "Не вдалося завантажити метадані мультимедіа з TMDB. Перевірте, чи не відбувається збій TMDB або чи не є заблоковано у вашому інтернет-з'єднанні.", + "title": "Не вдалося завантажити метадані" + }, + "notFound": { + "badge": "Не знайдено", + "homeButton": "Повернутися на головну", + "text": "Не вдалося знайти запитані мультимедіа. Вони або були вилучені, або ви змінили URL.", + "title": "Не вдалося знайти це мультимедіа." + } + }, + "nextEpisode": { + "cancel": "Відмінити", + "next": "Наступний епізод" + }, + "playbackError": { + "badge": "Помилка відтворення", + "errors": { + "errorAborted": "Завантаження мультимедіа було скасовано на вимогу користувача.", + "errorDecode": "Незважаючи на те, що раніше було заявлено, що медіа-ресурс придатний для використання, при спробі декодування медіа-ресурсу виникла проблема, яка призвела до помилки.", + "errorGenericMedia": "Виникла невідома помилка мультимедіа.", + "errorNetwork": "Виникла якась помилка мережі, яка завадила успішному завантаженню мультимедіа, незважаючи на те, що раніше вони були доступні.", + "errorNotSupported": "Медіаоб'єкт або провайдер медіа не підтримується." + }, + "homeButton": "Повернутися на головну", + "text": "Сталася помилка при спробі відтворити медіа. Будь ласка спробуйте ще раз.", + "title": "Сталася помилка при відтворенні відео!" + }, + "scraping": { + "items": { + "failure": "Сталася помилка", + "notFound": "Не має цього відео", + "pending": "Шукаємо відео..." + }, + "notFound": { + "badge": "Не знайдено", + "detailsButton": "Показати деталі", + "homeButton": "Повернутись на головну сторінку", + "text": "Ми здійснили пошук серед наших провайдерів і не знайшли медіафайлів, які ви шукаєте! Ми не розміщуємо медіафайли та не контролюємо доступність. Будь ласка, натисніть 'Показати деталі' нижче, щоб дізнатися більше.", + "title": "Ми не знайшли цього" + } + }, + "time": { + "regular": "{{timeWatched}} / {{duration}}", + "remaining": "{{timeLeft}} залишилось • Закінчити в {{timeFinished, datetime}}", + "shortRegular": "{{timeWatched}}", + "shortRemaining": "-{{timeLeft}}" + }, + "turnstile": { + "description": "Будь ласка, переконайтеся, що ви людина, заповнивши капчу праворуч. Це робиться для безпеки sudo-flix!", + "error": "Не вдалося підтвердити вашу людяність. Будь ласка, спробуйте ще раз.", + "title": "Ми повинні переконатися, що ви людина.", + "verifyingHumanity": "Перевіряємо вашу людяність..." + } + }, + "screens": { + "dmca": { + "text": "Вітаємо на нашій сторінці зв'язку DMCA! Ми поважаємо права інтелектуальної власності і хочемо вирішити будь-які проблеми з авторськими правами швидко. Якщо ви вважаєте, що ваші авторські права були неправильно використані на нашій платформі, будь ласка, надішліть детальне повідомлення DMCA на електронну адресу нижче. Будь ласка, вкажіть опис авторського матеріалу, ваші контактні дані та заяву про добросовісну віру. Ми зобов'язані вирішити ці питання оперативно і вдячні за вашу співпрацю в збереженні sudo-flix місцем, яке поважає творчість та авторські права.", + "title": "DMCA" + }, + "loadingApp": "Завантаження застосунку", + "loadingUser": "Завантаження вашого профілю", + "loadingUserError": { + "logout": "Вийти", + "reset": "Перезавантажити власний сервер", + "text": "Сталася помилка при завантаженні вашого профілю", + "textWithReset": "Сталася помилка при завантаженні вашого профілю з вашого сервера, чи бажаєте повернутись на стандартний сервер?" + }, + "migration": { + "failed": "Сталася помилка під час міграції даних.", + "inProgress": "Будь ласка, зачекайте, відбувається міграція ваших даних. Це не повинно зайняти багато часу." + } + }, + "settings": { + "account": { + "accountDetails": { + "deviceNameLabel": "Назва пристрою", + "deviceNamePlaceholder": "Номер телефону", + "editProfile": "Редагувати", + "logoutButton": "Вийти" + }, + "actions": { + "delete": { + "button": "Видалити акаунт", + "confirmButton": "Видалити акаунт", + "confirmDescription": "Ви впевнені, що хочете видалити свій акаунт? Всі ваші дані будуть втрачені!", + "confirmTitle": "Ви впевнені?", + "text": "Ця дія незворотна. Всі дані будуть видалені і нічого не можна буде відновити.", + "title": "Видалити акаунт" + }, + "title": "Дії" + }, + "devices": { + "deviceNameLabel": "Назва пристрою", + "failed": "Сталася помилка при завантаженні сесій", + "removeDevice": "Видалити", + "title": "Пристрої" + }, + "profile": { + "finish": "Завершити редагування", + "firstColor": "Перший колір профілю", + "secondColor": "Другий колір профілю", + "title": "Редагувати фото профілю", + "userIcon": "Іконка користувача" + }, + "register": { + "cta": "Зареєструватися", + "text": "Діліться своїм прогресом перегляду між пристроями та синхронізуйте їх.", + "title": "Синхронізація з хмарою" + }, + "title": "Обліковий запис" + }, + "appearance": { + "activeTheme": "Активна тема", + "themes": { + "blue": "Блакитний", + "default": "За замовчуванням", + "gray": "Сірий", + "red": "Червоний", + "teal": "Бірюзовий" + }, + "title": "Вигляд" + }, + "connections": { + "server": { + "description": "Якщо ви бажаєте підключитися до користувацького сервера для зберігання даних, увімкніть це та вкажіть URL-адресу. <0>Інструкції.", + "label": "Власний сервер", + "urlLabel": "URL сервера" + }, + "setup": { + "doSetup": "Виконайте налаштування", + "errorStatus": { + "description": "Здається, що один або декілька пунктів у цьому налаштуванні потребують вашої уваги.", + "title": "Дещо потребує вашої уваги" + }, + "itemError": "Щось не так із цією настройкою. Пройдіть налаштування ще раз, щоб виправити це.", + "items": { + "default": "Налаштування за замовчанням", + "extension": "Розширення", + "proxy": "Користувацький проксі" + }, + "redoSetup": "Повторити налаштування", + "successStatus": { + "description": "Усе готово для того, щоб ви могли почати дивитися улюблені медіа.", + "title": "Все готово!" + }, + "unsetStatus": { + "description": "Будь ласка, натисніть кнопку праворуч, щоб розпочати процес налаштування.", + "title": "Ви не завершили налаштування" + } + }, + "title": "З'єднання", + "workers": { + "addButton": "Додати нового працівника", + "description": "Щоб додаток працював, весь трафік маршрутизується через проксі-сервери. Увімкніть це, якщо ви хочете використовувати власні проксі воркери. <0>Інструкція.", + "emptyState": "Немає працівників", + "label": "Використовувати власних проксі-працівників", + "urlLabel": "URL-у працівника", + "urlPlaceholder": "https://" + } + }, + "preferences": { + "language": "Мова додатку", + "languageDescription": "Мова застосована до всього додатку.", + "thumbnail": "Створити мініатюри", + "thumbnailDescription": "Часто відео не мають мініатюр. Ви можете активувати цей параметр для їх генерації під час відтворення, але це може уповільнити відтворення відео.", + "thumbnailLabel": "Сгенерувати мініатюри", + "title": "Параметри" + }, + "reset": "Скинути налаштування", + "save": "Зберегти", + "sidebar": { + "info": { + "appVersion": "Версія застосунку", + "backendUrl": "URL сервера", + "backendVersion": "Версія сервера", + "hostname": "Ім'я хоста", + "insecure": "Небезпечно", + "notLoggedIn": "Ви не увійшли", + "secure": "Безпечно", + "title": "Інформація про застосунок", + "unknownVersion": "Невідомо", + "userId": "ID користувача" + } + }, + "subtitles": { + "backgroundLabel": "Прозорість фону", + "colorLabel": "Колір", + "previewQuote": "Я не повинен боятися. Страх вбиває розум.", + "textSizeLabel": "Розмір шрифту", + "title": "Субтитри" + }, + "unsaved": "У вас є незбережені зміни" + } +} diff --git a/src/assets/locales/vi.json b/src/assets/locales/vi.json new file mode 100644 index 00000000..19206815 --- /dev/null +++ b/src/assets/locales/vi.json @@ -0,0 +1,160 @@ +{ + "about": { + "description": "sudo-flix là một ứng dụng web tìm kiếm các nguồn truyền phát trực tuyến trên Internet. Nhóm phát triển ứng dụng này nhắm đến một cách dễ dàng hơn trong việc tiêu thụ nội dung.", + "faqTitle": "Các câu hỏi thường gặp", + "q1": { + "body": "sudo-flix không lưu trữ bất kì nội dung nào. Khi bạn chọn xem một nội dung nào đó, ứng dụng sẽ tìm kiếm nội dung đó trên Internet (Khi nội dung tải và trong tab 'nguồn video' bạn sẽ tìm thấy nguồn đang được dùng). Nội dung không bao giờ được tải lên trên sudo-flix, mọi thứ đều được tìm kiếm thông qua phương thức này.", + "title": "Nội dung đến từ đâu?" + }, + "q2": { + "body": "Việc yêu cầu thêm một chương trình truyền hình hoặc phim là điều bất khả thi bởi vì sudo-flix không quản lý bất kỳ nội dung nào. Tất cả nội dung được truyền thông qua những nguồn trên internet.", + "title": "Tôi có thể yêu cầu thêm một chương trình truyền hình hoặc phim ở đâu?" + }, + "q3": { + "body": "Các kết quả tìm kiếm được cung cấp bởi The Movie Database (TMDB) và hiện lên bất kể các nguồn của trang thực sự có lưu trữ nội dung đó hay không.", + "title": "Tại sao kết quả tìm kiếm hiển thị chương trình truyền hình hoặc phim nhưng tôi không thể xem nó?" + }, + "title": "Về sudo-flix" + }, + "actions": { + "copied": "Đã sao chép", + "copy": "Sao chép" + }, + "auth": { + "createAccount": "Chưa có tài khoản? <0>Hãy tạo tài khoản.", + "deviceNameLabel": "Tên thiết bị", + "deviceNamePlaceholder": "Điện thoại cá nhân", + "generate": { + "description": "Mật ngữ của bạn đóng vai trò là tên người dùng và mật khẩu của bạn. Hãy giữ nó an toàn vì bạn sẽ cần nhập nó để đăng nhập vào tài khoản của bạn", + "next": "Tôi đã lưu giữ mật ngữ của mình", + "passphraseFrameLabel": "Mật ngữ", + "title": "Mật ngữ của bạn" + }, + "hasAccount": "Đã có tài khoản? <0>Hãy đăng nhập.", + "login": { + "description": "Hãy nhập mật ngữ của bạn để đăng nhập vào tài khoản", + "deviceLengthError": "Hãy nhập tên thiết bị", + "passphraseLabel": "Mật ngữ gồm 12 từ", + "passphrasePlaceholder": "Mật ngữ", + "submit": "Đăng nhập", + "title": "Đăng nhập vào tài khoản của bạn", + "validationError": "Mật ngữ không chính xác hoặc không đầy đủ" + }, + "register": { + "information": { + "color1": "Màu hồ sơ số một", + "color2": "Màu hồ sơ số hai", + "header": "Hãy nhập tên cho thiết bị của bạn và chọn màu sắc và biểu tượng người dùng", + "icon": "Biểu tượng người dùng", + "next": "Tiếp theo", + "title": "Thông tin tài khoản" + } + }, + "trust": { + "failed": { + "text": "Bạn đã cài đặt nó một cách chính xác chưa?", + "title": "Không thể truy vấn máy chủ" + }, + "host": "Bạn đang kết nối đến máy chủ <0>{{hostname}} - vui lòng chắc chắn rằng bạn tin tưởng máy chủ này trước khi tạo tài khoản", + "no": "Quay lại", + "title": "Bạn có tin tưởng máy chủ này không?", + "yes": "Tôi tin tưởng máy chủ này" + }, + "verify": { + "description": "Vui lòng nhập mật ngữ của bạn lúc nãy đễ chắc chắn rằng bạn đã lưu nó và để tạo tài khoản", + "invalidData": "Dữ liệu không hợp lệ", + "noMatch": "Mật ngữ không khớp", + "passphraseLabel": "Mật ngữ 12 ký tự của bạn", + "recaptchaFailed": "Xác minh bằng ReCaptcha không hợp lệ", + "register": "Tạo tài khoản", + "title": "Nhập lại mật ngữ của bạn" + } + }, + "errors": { + "badge": "Lỗi", + "details": "Thông tin về lỗi", + "reloadPage": "Tải lại trang", + "showError": "Hiển thị thông tin về lỗi", + "title": "Đã xảy ra lỗi!" + }, + "footer": { + "legal": { + "disclaimer": "Tuyên bố miễn trừ trách nhiệm", + "disclaimerText": "sudo-flix không lưu trữ bất kì file nào, nó chỉ đến những đường dẫn của các dịch vụ bên thứ ba. Bất kỳ vấn đề nào về pháp lý nên được đưa đến chủ sỡ hữu của file hoặc những nhà cung cấp đó. sudo-flix hoàn toàn không chịu trách nhiệm cho bất kỳ nội dung nào được chiếu từ các nhà cung cấp." + }, + "links": { + "discord": "Discord", + "dmca": "DMCA", + "github": "GitHub" + }, + "tagline": "Xem các chương trình và phim yêu thích của bạn với ứng dụng phát trực tuyến nguồn mở này." + }, + "global": { + "name": "sudo-flix", + "pages": { + "pagetitle": "{{title}} - sudo-flix", + "register": "Đăng ký" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "Đánh dấu" + }, + "continueWatching": { + "sectionTitle": "Tiếp tục xem" + }, + "search": { + "allResults": "Đó là tất cả chúng tôi có!", + "failed": "Không thể tìm thấy nội dung, hãy thử lại!", + "loading": "Đang tải...", + "noResults": "Chúng tôi không thể tìm thấy gì!", + "placeholder": "Bạn muốn xem gì?", + "sectionTitle": "Kết quả tìm kiếm" + } + }, + "media": { + "episodeDisplay": "M{{season}} T{{episode}}", + "types": { + "movie": "Phim", + "show": "Chương trình truyền hình" + } + }, + "navigation": { + "banner": { + "offline": "Hãy kiểm tra kết nối Internet của bạn" + } + }, + "notFound": { + "badge": "Không tìm thấy", + "goHome": "Quay lại trang chính", + "message": "Chúng tôi đã tìm kiếm khắp nơi: dưới thùng rác, trong tủ quần áo, đằng sau máy chủ proxy nhưng vẫn không thể tìm thấy trang bạn đang tìm kiếm.", + "title": "Không thể tìm thấy trang" + }, + "player": { + "back": { + "default": "Quay lại trang chính", + "short": "Quay lại" + }, + "menus": { + "episodes": { + "button": "Tập", + "loadingList": "Đang tải...", + "loadingTitle": "Đang tải..." + }, + "sources": { + "title": "Nguồn" + } + }, + "metadata": { + "notFound": { + "badge": "Không tìm thấy", + "homeButton": "Quay lại trang chính", + "text": "Chúng tôi không thể tìm thấy nội dung mà bạn yêu cầu. Hoặc là nó đã bị xóa, hoặc bạn đã xáo trộn URL.", + "title": "Không thể tìm thấy nội dung." + } + }, + "playbackError": { + "title": "Rất tiếc, đã hỏng!" + } + } +} diff --git a/src/assets/locales/zh-Hant.json b/src/assets/locales/zh-Hant.json new file mode 100644 index 00000000..088c2ce5 --- /dev/null +++ b/src/assets/locales/zh-Hant.json @@ -0,0 +1,102 @@ +{ + "about": { + "description": "sudo-flix 是一款在互聯網上搜尋流媒體的網路應用程式。團隊致力於讓使用者以最簡約的方式消費內容。", + "faqTitle": "常見問題", + "q1": { + "body": "sudo-flix 不託管任何內容。您點選觀看內容時,系統均從互聯網搜尋(在加載提示頁和“視頻源”選項卡中,您可以看到正在使用的源)。媒體從未在 sudo-flix 中上傳,所有內容均通過搜索機制而得。", + "title": "內容來自哪裡?" + } + }, + "auth": { + "login": { + "submit": "登入" + } + }, + "global": { + "pages": { + "about": "關於", + "login": "登入", + "settings": "設定" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "書籤" + }, + "search": { + "loading": "載入中..." + } + }, + "media": { + "types": { + "movie": "電影", + "show": "節目" + } + }, + "navigation": { + "menu": { + "donation": "捐", + "settings": "設定", + "support": "支援" + } + }, + "overlays": { + "close": "關閉" + }, + "player": { + "back": { + "short": "後退" + }, + "menus": { + "downloads": { + "title": "下載" + }, + "episodes": { + "loadingList": "載入中...", + "loadingTitle": "載入中..." + }, + "settings": { + "downloadItem": "下載" + }, + "subtitles": { + "title": "字幕" + } + }, + "metadata": { + "failed": { + "badge": "失敗" + } + }, + "nextEpisode": { + "cancel": "取消" + } + }, + "screens": { + "loadingUserError": { + "logout": "登出" + } + }, + "settings": { + "account": { + "title": "帳戶" + }, + "appearance": { + "themes": { + "blue": "藍色", + "gray": "灰色", + "red": "紅色", + "teal": "青色" + } + }, + "sidebar": { + "info": { + "insecure": "不安全", + "secure": "安全" + } + }, + "subtitles": { + "colorLabel": "顏色", + "title": "字幕" + } + } +} diff --git a/src/assets/locales/zh.json b/src/assets/locales/zh.json new file mode 100644 index 00000000..b2352d2e --- /dev/null +++ b/src/assets/locales/zh.json @@ -0,0 +1,526 @@ +{ + "about": { + "description": "sudo-flix 是一款在互联网上搜寻流媒体的网络应用程序。团队致力于让用户采取最简约的方式消费内容。", + "faqTitle": "常见问题", + "q1": { + "body": "sudo-flix 不托管任何内容。您点选观看内容时,系统均从互联网搜寻(在加载提示页和“视频源”选项卡中,您可以看到正在使用的源)。媒体从未在 sudo-flix 中上传,所有内容均通过搜索机制而得。", + "title": "内容来自哪里?" + }, + "q2": { + "body": "无法主动请求影视剧或其他节目,sudo-flix 不管理任何内容。所有内容均从互联网视频源获取并供您观看。", + "title": "我可以从哪里请求观看影视剧或其他节目?" + }, + "q3": { + "body": "我们的搜索结果由电影数据库(TMDB)驱动,无论视频源是否有对应内容,均会显示结果。", + "title": "搜索结果中已显示了影视剧或其他节目,为何我无法播放?" + }, + "title": "关于 sudo-flix" + }, + "actions": { + "copied": "已复制", + "copy": "复制" + }, + "auth": { + "createAccount": "还没有账户? <0>创建一个", + "deviceNameLabel": "设备名称", + "deviceNamePlaceholder": "如:我的手机", + "generate": { + "description": "您的密码短语相当于用户名与密码。由于您需要输入它来登录账户,请确保将其存放到安全位置", + "next": "我已保存密码短语", + "passphraseFrameLabel": "密码短语", + "title": "您的密码短语" + }, + "hasAccount": "已经拥有账户?<0>点击此处登录。", + "login": { + "description": "请输入密码短语以登录您的账户", + "deviceLengthError": "请输入设备名称", + "passphraseLabel": "12 词密码短语", + "passphrasePlaceholder": "密码短语", + "submit": "登录", + "title": "登录您的账户", + "validationError": "密码短语不正确或不完整" + }, + "register": { + "information": { + "color1": "头像配色 1", + "color2": "头像配色 2", + "header": "为您的设备输入名称,并选取一组代表色和一个用户图标", + "icon": "用户图标", + "next": "下一步", + "title": "账户信息" + } + }, + "trust": { + "failed": { + "text": "您的配置是否正确?", + "title": "服务器无法接通" + }, + "host": "您正在连接到 <0>{{hostname}} - 在创建账户前,确保您信任它", + "no": "返回", + "title": "您是否信任这个服务器?", + "yes": "我信任这个服务器" + }, + "verify": { + "description": "请输入早先的密码短语,以确认您已经保存它,并创建您的账户", + "invalidData": "数据无效", + "noMatch": "密码短语不匹配", + "passphraseLabel": "您的 12 词密码短语", + "recaptchaFailed": "ReCaptcha 验证失败", + "register": "创建账户", + "title": "确认您的密码短语" + } + }, + "errors": { + "badge": "它损坏了", + "details": "错误细节", + "reloadPage": "刷新页面", + "showError": "显示错误细节", + "title": "我们遇到了错误!" + }, + "footer": { + "legal": { + "disclaimer": "免责声明", + "disclaimerText": "sudo-flix 不托管任何文件,仅链接到第三方服务。 法律问题应由文件托管者和内容提供者解决。 sudo-flix 对视频提供者显示的任何媒体文件不承担任何责任。" + }, + "links": { + "discord": "Discord", + "dmca": "DMCA", + "github": "GitHub" + }, + "tagline": "在这个开源流媒体应用上观看你最喜爱的影视剧或其他节目。" + }, + "global": { + "name": "sudo-flix", + "pages": { + "about": "关于", + "dmca": "DMCA", + "login": "登录", + "onboarding": "设定", + "pagetitle": "{{title}} - sudo-flix", + "register": "注册", + "settings": "设置" + } + }, + "home": { + "bookmarks": { + "sectionTitle": "书签" + }, + "continueWatching": { + "sectionTitle": "继续观看" + }, + "mediaList": { + "stopEditing": "停止编辑" + }, + "search": { + "allResults": "以上是我们能找到的所有结果!", + "failed": "查找媒体失败,请重试!", + "loading": "载入中……", + "noResults": "我们找不到任何结果!", + "placeholder": "您想看些什么?", + "sectionTitle": "搜索结果" + }, + "titles": { + "day": { + "default": "您今天下午想看什么?", + "extra": ["想要来场冒险?《侏罗纪公园》可能是最佳选项。"] + }, + "morning": { + "default": "您今早想看什么?", + "extra": ["我听说《爱在黎明破晓前》不错"] + }, + "night": { + "default": "您今晚想看什么?", + "extra": ["累了?我听说《驱魔人》不错。"] + } + } + }, + "media": { + "episodeDisplay": "第{{season}}季 第{{episode}}集", + "types": { + "movie": "电影", + "show": "电视节目" + } + }, + "navigation": { + "banner": { + "offline": "检查您的互联网连接" + }, + "menu": { + "about": "关于我们", + "donation": "捐赠", + "logout": "登出", + "register": "同步到云端", + "settings": "设置", + "support": "支持" + } + }, + "notFound": { + "badge": "未找到", + "goHome": "返回首页", + "message": "我们已经到处找过了:不管是垃圾桶下、橱柜里或是代理之后。但最终并没有发现您查找的页面。", + "title": "无法找到页面" + }, + "onboarding": { + "defaultConfirm": { + "cancel": "取消", + "confirm": "使用默认设定", + "description": "默认设定不具备最好的视频流,并且播放速度可能慢得难以忍受。", + "title": "您确定吗?" + }, + "extension": { + "back": "返回", + "explainer": "使用浏览器扩展,您可以获得我们提供的最佳串流。只需简单的安装即可。", + "extensionHelp": "如您已安装扩展程序但未被检测到,请从浏览器的扩展菜单打开扩展 并按屏幕上的指示操作。", + "status": { + "disallowed": "扩展程序未对本页面启用", + "disallowedAction": "启用扩展程序", + "failed": "请求状态失败", + "loading": "正等待您安装扩展程序", + "outdated": "扩展版本过旧", + "success": "扩展程序工作正常!" + }, + "submit": "继续", + "title": "让我们从扩展程序开始" + }, + "proxy": { + "back": "返回", + "explainer": "使用代理方式,您可以通过自助代理服务获得高质量的串流。", + "input": { + "errorConnection": "无法连接到代理", + "errorInvalidUrl": "URL 无效", + "errorNotProxy": "检测到常规网站,链接应指向代理", + "label": "代理 URL", + "placeholder": "https://" + }, + "link": "了解如何设置代理", + "submit": "提交代理", + "title": "让我们设置新的代理" + }, + "start": { + "explainer": "为了尽可能获得最佳串流,您将需要选择使用何种串流方法。", + "options": { + "default": { + "text": "我不想使用高质量串流,<0 /> <1>使用默认设定" + }, + "extension": { + "action": "安装扩展程序", + "description": "安装浏览器扩展并获取最佳视频源。", + "quality": "最佳质量", + "title": "浏览器扩展" + }, + "proxy": { + "action": "设定代理", + "description": "在 5 分钟内设定好代理并获取优质资源。", + "quality": "高质量", + "title": "自定义代理" + } + }, + "title": "让我们为您设定 sudo-flix" + } + }, + "overlays": { + "close": "关闭" + }, + "player": { + "back": { + "default": "返回首页", + "short": "返回" + }, + "casting": { + "enabled": "正在投放到设备…" + }, + "menus": { + "downloads": { + "disclaimer": "下载内容是直接从内容提供者获取的。sudo-flix 无法控制下载内容如何被提供。", + "downloadPlaylist": "下载播放列表", + "downloadSubtitle": "下载当前字幕", + "downloadVideo": "下载视频", + "hlsDisclaimer": "下载内容是直接从内容提供者获取的。sudo-flix 无法控制下载内容如何被提供。

    请注意,您正在下载 HLS 播放列表,如您不熟悉高级流媒体格式,我们不推荐此操作。如需下载其他格式,请尝试切换视频源。", + "onAndroid": { + "1": "要从 Android 下载,先点击下载按钮,之后在新的页面上, 点击并按住视频,然后选择 保存。", + "shortTitle": "下载 / Android", + "title": "正在 Android 上下载" + }, + "onIos": { + "1": "要从 iOS 下载,点击下载按钮,之后在新的页面上,点击 ,然后保存到文件 。", + "shortTitle": "下载 / iOS", + "title": "正在 iOS 上下载" + }, + "onPc": { + "1": "在 PC 上,点击下载按钮,之后在新的页面上,右击视频并选择 另存视频为", + "shortTitle": "下载 / PC", + "title": "正在 PC 上下载" + }, + "title": "下载" + }, + "episodes": { + "button": "分集", + "emptyState": "该季暂无剧集,请稍后再来!", + "episodeBadge": "第{{episode}}集", + "loadingError": "加载分季时发生错误", + "loadingList": "载入中……", + "loadingTitle": "载入中……", + "unairedEpisodes": "本季中的一集或多集已因尚未播出而被禁用。" + }, + "playback": { + "speedLabel": "播放速度", + "title": "播放设置" + }, + "quality": { + "automaticLabel": "自动质量", + "hint": "您可以尝试<0>切换视频源以获取不同的质量选项。", + "iosNoQuality": "由于苹果施加的限制,该视频源的质量选择在 iOS 上不可用。您可以尝试<0>切换到其他视频源以获取不同的质量选项。", + "title": "质量" + }, + "settings": { + "downloadItem": "下载", + "enableSubtitles": "启用字幕", + "experienceSection": "观看体验", + "playbackItem": "播放设置", + "qualityItem": "质量", + "sourceItem": "视频源", + "subtitleItem": "字幕设置", + "videoSection": "视频设置" + }, + "sources": { + "failed": { + "text": "尝试获取任何视频时均发生错误,请尝试其他视频源。", + "title": "刮取失败" + }, + "noEmbeds": { + "text": "我们无法找到任何嵌入内容,请尝试其他视频源。", + "title": "未找到嵌入内容" + }, + "noStream": { + "text": "此视频源没有该影片或节目的串流。", + "title": "没有流" + }, + "title": "视频源", + "unknownOption": "未知" + }, + "subtitles": { + "customChoice": "从文件选取字幕", + "customizeLabel": "自定义", + "offChoice": "关闭", + "settings": { + "backlink": "自定义字幕", + "delay": "字幕延时", + "fixCapitals": "修整大小写" + }, + "title": "字幕", + "unknownLanguage": "未知" + } + }, + "metadata": { + "api": { + "text": "无法载入 API 元数据,请检查您的互联网连接。", + "title": "载入 API 元数据失败" + }, + "dmca": { + "badge": "已移除", + "text": "由于收到删除通知或版权声索,此媒体不再可用。", + "title": "媒体已被移除" + }, + "extensionPermission": { + "badge": "缺失权限", + "button": "使用扩展程序", + "text": "您已安装浏览器扩展,但我们需要您的许可才能启用它。", + "title": "配置扩展程序" + }, + "failed": { + "badge": "失败", + "homeButton": "返回首页", + "text": "无法从 TMDB 载入媒体的元数据。请检查 TMDB 是否掉线或在您的网络连接中被屏蔽。", + "title": "载入元数据失败" + }, + "notFound": { + "badge": "未找到", + "homeButton": "返回首页", + "text": "我们无法找到您请求的媒体。它可能已被删除,或您篡改了 URL.", + "title": "无法找到媒体。" + } + }, + "nextEpisode": { + "cancel": "取消", + "next": "下一集" + }, + "playbackError": { + "badge": "播放错误", + "errors": { + "errorAborted": "媒体获取已根据用户请求中止。", + "errorDecode": "尽管媒体资源此前已确定可用,但在尝试解码时产生问题,导致错误。", + "errorGenericMedia": "发生了未知的媒体错误。", + "errorNetwork": "发生了一些网络错误,导致媒体无法成功获取,尽管此前它可用。", + "errorNotSupported": "该媒体或媒体提供者对象不被支持。" + }, + "homeButton": "返回首页", + "text": "尝试播放媒体时发生错误。请重试。", + "title": "视频播放失败!" + }, + "scraping": { + "items": { + "failure": "发生了错误", + "notFound": "没有视频", + "pending": "正在检测视频…" + }, + "notFound": { + "badge": "未找到", + "detailsButton": "显示细节", + "homeButton": "返回首页", + "text": "我们已在所有内容提供者中搜索,但无法发现您搜寻的媒体内容!我们并不托管媒体内容,也无法控制有什么内容可用。请点击下方的“显示细节”了解更多。", + "title": "我们无法找到它" + } + }, + "time": { + "regular": "{{timeWatched}} / {{duration}}", + "remaining": "剩余 {{timeLeft}} • 完结于 {{timeFinished, datetime}}", + "shortRegular": "{{timeWatched}}", + "shortRemaining": "-{{timeLeft}}" + }, + "turnstile": { + "description": "请完成右侧的验证码以验证您是人类。这是为了确保 sudo-flix 的安全!", + "error": "验证失败。请重试。", + "title": "我们需要验证您是人类。", + "verifyingHumanity": "正在验证您是否为人类…" + } + }, + "screens": { + "dmca": { + "text": "欢迎来到 sudo-flix 的 DMCA 联系页面!我们尊重知识产权,并希望迅速解决任何版权问题。如果您认为您的版权作品在我们的平台上被不当使用,请发送详细的 DMCA 通知至以下邮箱。同时请附上受版权保护的材料的描述、您的具体联系方式以及善意信念声明。 我们承诺及时解决这些问题,并感谢您的合作,让 sudo-flix 成为尊重创意和版权之地。", + "title": "DMCA" + }, + "loadingApp": "正在载入应用程序", + "loadingUser": "正在载入您的个人资料", + "loadingUserError": { + "logout": "登出", + "reset": "重设自定义服务器", + "text": "载入您的个人资料失败", + "textWithReset": "从您的自定义服务器载入个人资料失败,您想重设到默认服务器吗?" + }, + "migration": { + "failed": "迁移您的数据失败。", + "inProgress": "请稍候,我们正在迁移您的数据。这不会花很多时间。" + } + }, + "settings": { + "account": { + "accountDetails": { + "deviceNameLabel": "设备名称", + "deviceNamePlaceholder": "如:个人电话", + "editProfile": "编辑", + "logoutButton": "登出" + }, + "actions": { + "delete": { + "button": "删除账户", + "confirmButton": "删除账户", + "confirmDescription": "您确定要删除账户吗?所有数据将会丢失!", + "confirmTitle": "您确定吗?", + "text": "此操作不可逆。所有数据将被删除且无法恢复。", + "title": "删除账户" + }, + "title": "操作" + }, + "devices": { + "deviceNameLabel": "设备名称", + "failed": "载入会话失败", + "removeDevice": "移除", + "title": "设备" + }, + "profile": { + "finish": "完成编辑", + "firstColor": "个人资料颜色 1", + "secondColor": "个人资料颜色 2", + "title": "编辑个人资料图像", + "userIcon": "用户图标" + }, + "register": { + "cta": "开始使用", + "text": "在设备之间共享并持续同步您的观看进度。", + "title": "同步到云端" + }, + "title": "账户" + }, + "appearance": { + "activeTheme": "已激活", + "themes": { + "blue": "蓝色", + "default": "默认", + "gray": "灰色", + "red": "红色", + "teal": "青色" + }, + "title": "外观" + }, + "connections": { + "server": { + "description": "若您想连接到自定义后端保存数据,请启用此选项并提供 URL。 <0>查看指引", + "label": "自定义服务器", + "urlLabel": "自定义服务器 URL" + }, + "setup": { + "doSetup": "进行设定", + "errorStatus": { + "description": "看起来此配置中的一项或多项需要您的注意。", + "title": "有件事需要您的注意" + }, + "itemError": "此设置存在错误。再次进行设定过程以修复它。", + "items": { + "default": "默认设定", + "extension": "扩展程序", + "proxy": "自定义代理" + }, + "redoSetup": "重新进行设定", + "successStatus": { + "description": "一切已经就绪,您可以开始观赏喜爱的媒体了。", + "title": "一切就绪!" + }, + "unsetStatus": { + "description": "请单击右侧的按钮开始进行设定。", + "title": "您尚未完成设定" + } + }, + "title": "连接", + "workers": { + "addButton": "添加新的 Worker", + "description": "要让应用程序正常运作,所有流量会通过代理路由。若您想使用自己的 Worker,请启用该选项。 <0>查看指引", + "emptyState": "还没有 Worker,在下方添加一个", + "label": "使用自定义代理 Worker", + "urlLabel": "Worker URL", + "urlPlaceholder": "https://" + } + }, + "preferences": { + "language": "应用程序语言", + "languageDescription": "作用于整个应用程序的语言。", + "thumbnail": "生成缩略图", + "thumbnailDescription": "大多数时候,视频没有缩略图。您可以启用此设置以在视频播放时动态生成它们,但此选项可能会拖慢视频速度。", + "thumbnailLabel": "生成缩略图", + "title": "偏好设置" + }, + "reset": "重设", + "save": "保存", + "sidebar": { + "info": { + "appVersion": "应用版本", + "backendUrl": "后端 URL", + "backendVersion": "后端版本", + "hostname": "主机名", + "insecure": "不安全", + "notLoggedIn": "您尚未登录", + "secure": "安全", + "title": "应用信息", + "unknownVersion": "未知", + "userId": "用户 ID" + } + }, + "subtitles": { + "backgroundLabel": "背景不透明度", + "colorLabel": "颜色", + "previewQuote": "我不能害怕。恐惧是心灵的杀手。", + "textSizeLabel": "字体大小", + "title": "字幕" + }, + "unsaved": "您有未保存的更改" + } +} diff --git a/src/assets/templates/opensearch.xml.hbs b/src/assets/templates/opensearch.xml.hbs new file mode 100644 index 00000000..a629d4dc --- /dev/null +++ b/src/assets/templates/opensearch.xml.hbs @@ -0,0 +1,6 @@ + + movie-web + The place for your favorite movies & shows + UTF-8 + + \ No newline at end of file diff --git a/src/backend/accounts/auth.ts b/src/backend/accounts/auth.ts new file mode 100644 index 00000000..71b23173 --- /dev/null +++ b/src/backend/accounts/auth.ts @@ -0,0 +1,35 @@ +import { ofetch } from "ofetch"; + +export interface SessionResponse { + id: string; + userId: string; + createdAt: string; + accessedAt: string; + device: string; + userAgent: string; +} +export interface LoginResponse { + session: SessionResponse; + token: string; +} + +export function getAuthHeaders(token: string): Record { + return { + authorization: `Bearer ${token}`, + }; +} + +export async function accountLogin( + url: string, + id: string, + deviceName: string, +): Promise { + return ofetch("/auth/login", { + method: "POST", + body: { + id, + device: deviceName, + }, + baseURL: url, + }); +} diff --git a/src/backend/accounts/bookmarks.ts b/src/backend/accounts/bookmarks.ts new file mode 100644 index 00000000..79495415 --- /dev/null +++ b/src/backend/accounts/bookmarks.ts @@ -0,0 +1,64 @@ +import { ofetch } from "ofetch"; + +import { getAuthHeaders } from "@/backend/accounts/auth"; +import { BookmarkResponse } from "@/backend/accounts/user"; +import { AccountWithToken } from "@/stores/auth"; +import { BookmarkMediaItem } from "@/stores/bookmarks"; + +export interface BookmarkMetaInput { + title: string; + year: number; + poster?: string; + type: string; +} + +export interface BookmarkInput { + tmdbId: string; + meta: BookmarkMetaInput; +} + +export function bookmarkMediaToInput( + tmdbId: string, + item: BookmarkMediaItem, +): BookmarkInput { + return { + meta: { + title: item.title, + type: item.type, + poster: item.poster, + year: item.year ?? 0, + }, + tmdbId, + }; +} + +export async function addBookmark( + url: string, + account: AccountWithToken, + input: BookmarkInput, +) { + return ofetch( + `/users/${account.userId}/bookmarks/${input.tmdbId}`, + { + method: "POST", + headers: getAuthHeaders(account.token), + baseURL: url, + body: input, + }, + ); +} + +export async function removeBookmark( + url: string, + account: AccountWithToken, + id: string, +) { + return ofetch<{ tmdbId: string }>( + `/users/${account.userId}/bookmarks/${id}`, + { + method: "DELETE", + headers: getAuthHeaders(account.token), + baseURL: url, + }, + ); +} diff --git a/src/backend/accounts/crypto.ts b/src/backend/accounts/crypto.ts new file mode 100644 index 00000000..9fe51380 --- /dev/null +++ b/src/backend/accounts/crypto.ts @@ -0,0 +1,131 @@ +import { pbkdf2Async } from "@noble/hashes/pbkdf2"; +import { sha256 } from "@noble/hashes/sha256"; +import { generateMnemonic, validateMnemonic } from "@scure/bip39"; +import { wordlist } from "@scure/bip39/wordlists/english"; +import forge from "node-forge"; + +type Keys = { + privateKey: Uint8Array; + publicKey: Uint8Array; + seed: Uint8Array; +}; + +async function seedFromMnemonic(mnemonic: string) { + return pbkdf2Async(sha256, mnemonic, "mnemonic", { + c: 2048, + dkLen: 32, + }); +} + +export function verifyValidMnemonic(mnemonic: string) { + return validateMnemonic(mnemonic, wordlist); +} + +export async function keysFromMnemonic(mnemonic: string): Promise { + const seed = await seedFromMnemonic(mnemonic); + + const { privateKey, publicKey } = forge.pki.ed25519.generateKeyPair({ + seed, + }); + + return { + privateKey, + publicKey, + seed, + }; +} + +export function genMnemonic(): string { + return generateMnemonic(wordlist); +} + +export async function signCode( + code: string, + privateKey: Uint8Array, +): Promise { + return forge.pki.ed25519.sign({ + encoding: "utf8", + message: code, + privateKey, + }); +} + +export function bytesToBase64(bytes: Uint8Array) { + return forge.util.encode64(String.fromCodePoint(...bytes)); +} + +export function bytesToBase64Url(bytes: Uint8Array): string { + return bytesToBase64(bytes) + .replace(/\//g, "_") + .replace(/\+/g, "-") + .replace(/=+$/, ""); +} + +export async function signChallenge(keys: Keys, challengeCode: string) { + const signature = await signCode(challengeCode, keys.privateKey); + return bytesToBase64Url(signature); +} + +export function base64ToBuffer(data: string) { + return forge.util.binary.base64.decode(data); +} + +export function base64ToStringBuffer(data: string) { + return forge.util.createBuffer(base64ToBuffer(data)); +} + +export function stringBufferToBase64(buffer: forge.util.ByteStringBuffer) { + return forge.util.encode64(buffer.getBytes()); +} + +export async function encryptData(data: string, secret: Uint8Array) { + if (secret.byteLength !== 32) + throw new Error("Secret must be at least 256-bit"); + + const iv = await new Promise((resolve, reject) => { + forge.random.getBytes(16, (err, bytes) => { + if (err) reject(err); + resolve(bytes); + }); + }); + + const cipher = forge.cipher.createCipher( + "AES-GCM", + forge.util.createBuffer(secret), + ); + cipher.start({ + iv, + tagLength: 128, + }); + cipher.update(forge.util.createBuffer(data, "utf8")); + cipher.finish(); + + const encryptedData = cipher.output; + const tag = cipher.mode.tag; + + return `${forge.util.encode64(iv)}.${stringBufferToBase64( + encryptedData, + )}.${stringBufferToBase64(tag)}` as const; +} + +export function decryptData(data: string, secret: Uint8Array) { + if (secret.byteLength !== 32) throw new Error("Secret must be 256-bit"); + + const [iv, encryptedData, tag] = data.split("."); + + const decipher = forge.cipher.createDecipher( + "AES-GCM", + forge.util.createBuffer(secret), + ); + decipher.start({ + iv: base64ToStringBuffer(iv), + tag: base64ToStringBuffer(tag), + tagLength: 128, + }); + decipher.update(base64ToStringBuffer(encryptedData)); + const pass = decipher.finish(); + + if (!pass) throw new Error("Error decrypting data"); + + return decipher.output.toString(); +} diff --git a/src/backend/accounts/import.ts b/src/backend/accounts/import.ts new file mode 100644 index 00000000..3caaffb3 --- /dev/null +++ b/src/backend/accounts/import.ts @@ -0,0 +1,33 @@ +import { ofetch } from "ofetch"; + +import { getAuthHeaders } from "@/backend/accounts/auth"; +import { AccountWithToken } from "@/stores/auth"; + +import { BookmarkInput } from "./bookmarks"; +import { ProgressInput } from "./progress"; + +export function importProgress( + url: string, + account: AccountWithToken, + progressItems: ProgressInput[], +) { + return ofetch(`/users/${account.userId}/progress/import`, { + method: "PUT", + body: progressItems, + baseURL: url, + headers: getAuthHeaders(account.token), + }); +} + +export function importBookmarks( + url: string, + account: AccountWithToken, + bookmarks: BookmarkInput[], +) { + return ofetch(`/users/${account.userId}/bookmarks`, { + method: "PUT", + body: bookmarks, + baseURL: url, + headers: getAuthHeaders(account.token), + }); +} diff --git a/src/backend/accounts/login.ts b/src/backend/accounts/login.ts new file mode 100644 index 00000000..13c80269 --- /dev/null +++ b/src/backend/accounts/login.ts @@ -0,0 +1,48 @@ +import { ofetch } from "ofetch"; + +import { SessionResponse } from "@/backend/accounts/auth"; + +export interface ChallengeTokenResponse { + challenge: string; +} + +export async function getLoginChallengeToken( + url: string, + publicKey: string, +): Promise { + return ofetch("/auth/login/start", { + method: "POST", + body: { + publicKey, + }, + baseURL: url, + }); +} + +export interface LoginResponse { + session: SessionResponse; + token: string; +} + +export interface LoginInput { + publicKey: string; + challenge: { + code: string; + signature: string; + }; + device: string; +} + +export async function loginAccount( + url: string, + data: LoginInput, +): Promise { + return ofetch("/auth/login/complete", { + method: "POST", + body: { + namespace: "movie-web", + ...data, + }, + baseURL: url, + }); +} diff --git a/src/backend/accounts/meta.ts b/src/backend/accounts/meta.ts new file mode 100644 index 00000000..0886dc11 --- /dev/null +++ b/src/backend/accounts/meta.ts @@ -0,0 +1,15 @@ +import { ofetch } from "ofetch"; + +export interface MetaResponse { + version: string; + name: string; + description?: string; + hasCaptcha: boolean; + captchaClientKey?: string; +} + +export async function getBackendMeta(url: string): Promise { + return ofetch("/meta", { + baseURL: url, + }); +} diff --git a/src/backend/accounts/progress.ts b/src/backend/accounts/progress.ts new file mode 100644 index 00000000..511d1c5d --- /dev/null +++ b/src/backend/accounts/progress.ts @@ -0,0 +1,115 @@ +import { ofetch } from "ofetch"; + +import { getAuthHeaders } from "@/backend/accounts/auth"; +import { ProgressResponse } from "@/backend/accounts/user"; +import { AccountWithToken } from "@/stores/auth"; +import { ProgressMediaItem, ProgressUpdateItem } from "@/stores/progress"; + +export interface ProgressInput { + meta?: { + title: string; + year: number; + poster?: string; + type: string; + }; + tmdbId: string; + watched: number; + duration: number; + seasonId?: string; + episodeId?: string; + seasonNumber?: number; + episodeNumber?: number; + updatedAt?: string; +} + +export function progressUpdateItemToInput( + item: ProgressUpdateItem, +): ProgressInput { + return { + duration: item.progress?.duration ?? 0, + watched: item.progress?.watched ?? 0, + tmdbId: item.tmdbId, + meta: { + title: item.title ?? "", + type: item.type ?? "", + year: item.year ?? NaN, + poster: item.poster, + }, + episodeId: item.episodeId, + seasonId: item.seasonId, + episodeNumber: item.episodeNumber, + seasonNumber: item.seasonNumber, + }; +} + +export function progressMediaItemToInputs( + tmdbId: string, + item: ProgressMediaItem, +): ProgressInput[] { + if (item.type === "show") { + return Object.entries(item.episodes).flatMap(([_, episode]) => ({ + duration: item.progress?.duration ?? episode.progress.duration, + watched: item.progress?.watched ?? episode.progress.watched, + tmdbId, + meta: { + title: item.title ?? "", + type: item.type ?? "", + year: item.year ?? NaN, + poster: item.poster, + }, + episodeId: episode.id, + seasonId: episode.seasonId, + episodeNumber: episode.number, + seasonNumber: item.seasons[episode.seasonId].number, + updatedAt: new Date(episode.updatedAt).toISOString(), + })); + } + return [ + { + duration: item.progress?.duration ?? 0, + watched: item.progress?.watched ?? 0, + tmdbId, + updatedAt: new Date(item.updatedAt).toISOString(), + meta: { + title: item.title ?? "", + type: item.type ?? "", + year: item.year ?? NaN, + poster: item.poster, + }, + }, + ]; +} + +export async function setProgress( + url: string, + account: AccountWithToken, + input: ProgressInput, +) { + return ofetch( + `/users/${account.userId}/progress/${input.tmdbId}`, + { + method: "PUT", + headers: getAuthHeaders(account.token), + baseURL: url, + body: input, + }, + ); +} + +export async function removeProgress( + url: string, + account: AccountWithToken, + id: string, + episodeId?: string, + seasonId?: string, +) { + await ofetch(`/users/${account.userId}/progress/${id}`, { + method: "DELETE", + headers: getAuthHeaders(account.token), + baseURL: url, + body: { + episodeId, + seasonId, + }, + }); +} diff --git a/src/backend/accounts/register.ts b/src/backend/accounts/register.ts new file mode 100644 index 00000000..8fd0f9e3 --- /dev/null +++ b/src/backend/accounts/register.ts @@ -0,0 +1,55 @@ +import { ofetch } from "ofetch"; + +import { SessionResponse } from "@/backend/accounts/auth"; +import { UserResponse } from "@/backend/accounts/user"; + +export interface ChallengeTokenResponse { + challenge: string; +} + +export async function getRegisterChallengeToken( + url: string, + captchaToken?: string, +): Promise { + return ofetch("/auth/register/start", { + method: "POST", + body: { + captchaToken, + }, + baseURL: url, + }); +} + +export interface RegisterResponse { + user: UserResponse; + session: SessionResponse; + token: string; +} + +export interface RegisterInput { + publicKey: string; + challenge: { + code: string; + signature: string; + }; + device: string; + profile: { + colorA: string; + colorB: string; + icon: string; + }; +} + +export async function registerAccount( + url: string, + data: RegisterInput, +): Promise { + return ofetch("/auth/register/complete", { + method: "POST", + body: { + namespace: "movie-web", + ...data, + }, + baseURL: url, + }); +} diff --git a/src/backend/accounts/sessions.ts b/src/backend/accounts/sessions.ts new file mode 100644 index 00000000..34c4af30 --- /dev/null +++ b/src/backend/accounts/sessions.ts @@ -0,0 +1,49 @@ +import { ofetch } from "ofetch"; + +import { getAuthHeaders } from "@/backend/accounts/auth"; +import { AccountWithToken } from "@/stores/auth"; + +export interface SessionResponse { + id: string; + userId: string; + createdAt: string; + accessedAt: string; + device: string; + userAgent: string; +} + +export interface SessionUpdate { + deviceName: string; +} + +export async function getSessions(url: string, account: AccountWithToken) { + return ofetch(`/users/${account.userId}/sessions`, { + headers: getAuthHeaders(account.token), + baseURL: url, + }); +} + +export async function updateSession( + url: string, + account: AccountWithToken, + update: SessionUpdate, +) { + return ofetch(`/sessions/${account.sessionId}`, { + method: "PATCH", + headers: getAuthHeaders(account.token), + body: update, + baseURL: url, + }); +} + +export async function removeSession( + url: string, + token: string, + sessionId: string, +) { + return ofetch(`/sessions/${sessionId}`, { + method: "DELETE", + headers: getAuthHeaders(token), + baseURL: url, + }); +} diff --git a/src/backend/accounts/settings.ts b/src/backend/accounts/settings.ts new file mode 100644 index 00000000..c749795b --- /dev/null +++ b/src/backend/accounts/settings.ts @@ -0,0 +1,39 @@ +import { ofetch } from "ofetch"; + +import { getAuthHeaders } from "@/backend/accounts/auth"; +import { AccountWithToken } from "@/stores/auth"; + +export interface SettingsInput { + applicationLanguage?: string; + applicationTheme?: string | null; + defaultSubtitleLanguage?: string; + proxyUrls?: string[] | null; +} + +export interface SettingsResponse { + applicationTheme?: string | null; + applicationLanguage?: string | null; + defaultSubtitleLanguage?: string | null; + proxyUrls?: string[] | null; +} + +export function updateSettings( + url: string, + account: AccountWithToken, + settings: SettingsInput, +) { + return ofetch(`/users/${account.userId}/settings`, { + method: "PUT", + body: settings, + baseURL: url, + headers: getAuthHeaders(account.token), + }); +} + +export function getSettings(url: string, account: AccountWithToken) { + return ofetch(`/users/${account.userId}/settings`, { + method: "GET", + baseURL: url, + headers: getAuthHeaders(account.token), + }); +} diff --git a/src/backend/accounts/user.ts b/src/backend/accounts/user.ts new file mode 100644 index 00000000..4708dd2b --- /dev/null +++ b/src/backend/accounts/user.ts @@ -0,0 +1,178 @@ +import { ofetch } from "ofetch"; + +import { SessionResponse, getAuthHeaders } from "@/backend/accounts/auth"; +import { AccountWithToken } from "@/stores/auth"; +import { BookmarkMediaItem } from "@/stores/bookmarks"; +import { ProgressMediaItem } from "@/stores/progress"; + +export interface UserResponse { + id: string; + namespace: string; + name: string; + roles: string[]; + createdAt: string; + profile: { + colorA: string; + colorB: string; + icon: string; + }; +} + +export interface UserEdit { + profile?: { + colorA: string; + colorB: string; + icon: string; + }; +} + +export interface BookmarkResponse { + tmdbId: string; + meta: { + title: string; + year: number; + poster?: string; + type: "show" | "movie"; + }; + updatedAt: string; +} + +export interface ProgressResponse { + tmdbId: string; + season: { + id?: string; + number?: number; + }; + episode: { + id?: string; + number?: number; + }; + meta: { + title: string; + year: number; + poster?: string; + type: "show" | "movie"; + }; + duration: string; + watched: string; + updatedAt: string; +} + +export function bookmarkResponsesToEntries(responses: BookmarkResponse[]) { + const entries = responses.map((bookmark) => { + const item: BookmarkMediaItem = { + ...bookmark.meta, + updatedAt: new Date(bookmark.updatedAt).getTime(), + }; + return [bookmark.tmdbId, item] as const; + }); + + return Object.fromEntries(entries); +} + +export function progressResponsesToEntries(responses: ProgressResponse[]) { + const items: Record = {}; + + responses.forEach((v) => { + if (!items[v.tmdbId]) { + items[v.tmdbId] = { + title: v.meta.title, + poster: v.meta.poster, + type: v.meta.type, + updatedAt: new Date(v.updatedAt).getTime(), + episodes: {}, + seasons: {}, + year: v.meta.year, + }; + } + + const item = items[v.tmdbId]; + + // Since each watched episode is a single array entry but with the same tmdbId, the root item updatedAt will only have the first episode's timestamp (which is not the newest). + // Here, we are setting it explicitly so the updatedAt always has the highest updatedAt from the episodes. + if (new Date(v.updatedAt).getTime() > item.updatedAt) { + item.updatedAt = new Date(v.updatedAt).getTime(); + } + + if (item.type === "movie") { + item.progress = { + duration: Number(v.duration), + watched: Number(v.watched), + }; + } + + if (item.type === "show" && v.season.id && v.episode.id) { + item.seasons[v.season.id] = { + id: v.season.id, + number: v.season.number ?? 0, + title: "", + }; + item.episodes[v.episode.id] = { + id: v.episode.id, + number: v.episode.number ?? 0, + title: "", + progress: { + duration: Number(v.duration), + watched: Number(v.watched), + }, + seasonId: v.season.id, + updatedAt: new Date(v.updatedAt).getTime(), + }; + } + }); + + return items; +} + +export async function getUser( + url: string, + token: string, +): Promise<{ user: UserResponse; session: SessionResponse }> { + return ofetch<{ user: UserResponse; session: SessionResponse }>( + "/users/@me", + { + headers: getAuthHeaders(token), + baseURL: url, + }, + ); +} + +export async function editUser( + url: string, + account: AccountWithToken, + object: UserEdit, +): Promise<{ user: UserResponse; session: SessionResponse }> { + return ofetch<{ user: UserResponse; session: SessionResponse }>( + `/users/${account.userId}`, + { + method: "PATCH", + headers: getAuthHeaders(account.token), + body: object, + baseURL: url, + }, + ); +} + +export async function deleteUser( + url: string, + account: AccountWithToken, +): Promise { + return ofetch(`/users/${account.userId}`, { + headers: getAuthHeaders(account.token), + baseURL: url, + }); +} + +export async function getBookmarks(url: string, account: AccountWithToken) { + return ofetch(`/users/${account.userId}/bookmarks`, { + headers: getAuthHeaders(account.token), + baseURL: url, + }); +} + +export async function getProgress(url: string, account: AccountWithToken) { + return ofetch(`/users/${account.userId}/progress`, { + headers: getAuthHeaders(account.token), + baseURL: url, + }); +} diff --git a/src/backend/extension/compatibility.ts b/src/backend/extension/compatibility.ts new file mode 100644 index 00000000..00188a04 --- /dev/null +++ b/src/backend/extension/compatibility.ts @@ -0,0 +1,7 @@ +import { satisfies } from "semver"; + +const allowedExtensionRange = "^1.0.2"; + +export function isAllowedExtensionVersion(version: string): boolean { + return satisfies(version, allowedExtensionRange); +} diff --git a/src/backend/extension/messaging.ts b/src/backend/extension/messaging.ts new file mode 100644 index 00000000..3204d541 --- /dev/null +++ b/src/backend/extension/messaging.ts @@ -0,0 +1,80 @@ +import { + MessagesMetadata, + sendToBackgroundViaRelay, +} from "@plasmohq/messaging"; + +import { isAllowedExtensionVersion } from "@/backend/extension/compatibility"; +import { ExtensionMakeRequestResponse } from "@/backend/extension/plasmo"; + +// for some reason, about 500 ms is needed after +// page load before the extension starts responding properly +const isExtensionReady = new Promise((resolve) => { + setTimeout(() => { + resolve(); + }, 500); +}); + +let activeExtension = false; + +async function sendMessage( + message: MessageKey, + payload: MessagesMetadata[MessageKey]["req"] | undefined = undefined, + timeout: number = -1, +) { + await isExtensionReady; + return new Promise((resolve) => { + if (timeout >= 0) setTimeout(() => resolve(null), timeout); + sendToBackgroundViaRelay< + MessagesMetadata[MessageKey]["req"], + MessagesMetadata[MessageKey]["res"] + >({ + name: message, + body: payload, + }) + .then((res) => { + activeExtension = true; + resolve(res); + }) + .catch(() => { + activeExtension = false; + resolve(null); + }); + }); +} + +export async function sendExtensionRequest( + ops: MessagesMetadata["makeRequest"]["req"], +): Promise | null> { + return sendMessage("makeRequest", ops); +} + +export async function setDomainRule( + ops: MessagesMetadata["prepareStream"]["req"], +): Promise { + return sendMessage("prepareStream", ops); +} + +export async function sendPage( + ops: MessagesMetadata["openPage"]["req"], +): Promise { + return sendMessage("openPage", ops); +} + +export async function extensionInfo(): Promise< + MessagesMetadata["hello"]["res"] | null +> { + const message = await sendMessage("hello", undefined, 500); + return message; +} + +export function isExtensionActiveCached(): boolean { + return activeExtension; +} + +export async function isExtensionActive(): Promise { + const info = await extensionInfo(); + if (!info?.success) return false; + const allowedVersion = isAllowedExtensionVersion(info.version); + if (!allowedVersion) return false; + return info.allowed && info.hasPermission; +} diff --git a/src/backend/extension/plasmo.ts b/src/backend/extension/plasmo.ts new file mode 100644 index 00000000..14a5481f --- /dev/null +++ b/src/backend/extension/plasmo.ts @@ -0,0 +1,71 @@ +export interface ExtensionBaseRequest {} + +export type ExtensionBaseResponse = + | ({ + success: true; + } & T) + | { + success: false; + error: string; + }; + +export type ExtensionHelloResponse = ExtensionBaseResponse<{ + version: string; + allowed: boolean; + hasPermission: boolean; +}>; + +export interface ExtensionMakeRequest extends ExtensionBaseRequest { + url: string; + method: string; + headers?: Record; + body?: string | Record; + bodyType?: "string" | "FormData" | "URLSearchParams" | "object"; +} + +export type ExtensionMakeRequestBodyType = ExtensionMakeRequest["bodyType"]; + +export type ExtensionMakeRequestResponse = ExtensionBaseResponse<{ + response: { + statusCode: number; + headers: Record; + finalUrl: string; + body: T; + }; +}>; + +export interface ExtensionPrepareStreamRequest extends ExtensionBaseRequest { + ruleId: number; + targetDomains: string[]; + requestHeaders?: Record; + responseHeaders?: Record; +} + +export interface MmMetadata { + hello: { + req: ExtensionBaseRequest; + res: ExtensionHelloResponse; + }; + makeRequest: { + req: ExtensionMakeRequest; + res: ExtensionMakeRequestResponse; + }; + prepareStream: { + req: ExtensionPrepareStreamRequest; + res: ExtensionBaseResponse; + }; + openPage: { + req: ExtensionBaseRequest & { + page: string; + redirectUrl: string; + }; + res: ExtensionBaseResponse; + }; +} + +interface MpMetadata {} + +declare module "@plasmohq/messaging" { + interface MessagesMetadata extends MmMetadata {} + interface PortsMetadata extends MpMetadata {} +} diff --git a/src/backend/extension/request.ts b/src/backend/extension/request.ts new file mode 100644 index 00000000..5885225e --- /dev/null +++ b/src/backend/extension/request.ts @@ -0,0 +1,17 @@ +import { ExtensionMakeRequestBodyType } from "./plasmo"; + +export function getBodyTypeFromBody( + body: unknown, +): ExtensionMakeRequestBodyType { + if (typeof body === "string") return "string"; + if (body instanceof FormData) return "FormData"; + if (body instanceof URLSearchParams) return "URLSearchParams"; + return "object"; +} + +export function convertBodyToObject(body: unknown): any { + if (body instanceof FormData || body instanceof URLSearchParams) { + return [...body]; + } + return body; +} diff --git a/src/backend/extension/streams.ts b/src/backend/extension/streams.ts new file mode 100644 index 00000000..588718af --- /dev/null +++ b/src/backend/extension/streams.ts @@ -0,0 +1,43 @@ +import { Stream } from "@movie-web/providers"; + +import { setDomainRule } from "@/backend/extension/messaging"; + +function extractDomain(url: string): string | null { + try { + const u = new URL(url); + return u.hostname; + } catch { + return null; + } +} + +function extractDomainsFromStream(stream: Stream): string[] { + if (stream.type === "hls") { + return [extractDomain(stream.playlist)].filter((v): v is string => !!v); + } + if (stream.type === "file") { + return Object.values(stream.qualities) + .map((v) => extractDomain(v.url)) + .filter((v): v is string => !!v); + } + return []; +} + +function buildHeadersFromStream(stream: Stream): Record { + const headers: Record = {}; + Object.entries(stream.headers ?? {}).forEach((entry) => { + headers[entry[0]] = entry[1]; + }); + Object.entries(stream.preferredHeaders ?? {}).forEach((entry) => { + headers[entry[0]] = entry[1]; + }); + return headers; +} + +export async function prepareStream(stream: Stream) { + await setDomainRule({ + ruleId: 1, + targetDomains: extractDomainsFromStream(stream), + requestHeaders: buildHeadersFromStream(stream), + }); +} diff --git a/src/backend/helpers/fetch.ts b/src/backend/helpers/fetch.ts new file mode 100644 index 00000000..f9aa145a --- /dev/null +++ b/src/backend/helpers/fetch.ts @@ -0,0 +1,79 @@ +import { ofetch } from "ofetch"; + +import { getApiToken, setApiToken } from "@/backend/helpers/providerApi"; +import { getLoadbalancedProxyUrl } from "@/backend/providers/fetchers"; + +type P = Parameters>; +type R = ReturnType>; + +const baseFetch = ofetch.create({ + retry: 0, +}); + +export function makeUrl(url: string, data: Record) { + let parsedUrl: string = url; + Object.entries(data).forEach(([k, v]) => { + parsedUrl = parsedUrl.replace(`{${k}}`, encodeURIComponent(v)); + }); + return parsedUrl; +} + +export function mwFetch(url: string, ops: P[1] = {}): R { + return baseFetch(url, ops); +} + +export async function singularProxiedFetch( + proxyUrl: string, + url: string, + ops: P[1] = {}, +): R { + let combinedUrl = ops?.baseURL ?? ""; + if ( + combinedUrl.length > 0 && + combinedUrl.endsWith("/") && + url.startsWith("/") + ) + combinedUrl += url.slice(1); + else if ( + combinedUrl.length > 0 && + !combinedUrl.endsWith("/") && + !url.startsWith("/") + ) + combinedUrl += `/${url}`; + else combinedUrl += url; + + const parsedUrl = new URL(combinedUrl); + Object.entries(ops?.params ?? {}).forEach(([k, v]) => { + parsedUrl.searchParams.set(k, v); + }); + Object.entries(ops?.query ?? {}).forEach(([k, v]) => { + parsedUrl.searchParams.set(k, v); + }); + + let headers = ops.headers ?? {}; + const apiToken = await getApiToken(); + if (apiToken) + headers = { + ...headers, + "X-Token": apiToken, + }; + + return baseFetch(proxyUrl, { + ...ops, + baseURL: undefined, + params: { + destination: parsedUrl.toString(), + }, + query: {}, + headers, + onResponse(context) { + const tokenHeader = context.response.headers.get("X-Token"); + if (tokenHeader) setApiToken(tokenHeader); + ops.onResponse?.(context); + }, + }); +} + +export function proxiedFetch(url: string, ops: P[1] = {}): R { + return singularProxiedFetch(getLoadbalancedProxyUrl(), url, ops); +} diff --git a/src/backend/helpers/providerApi.ts b/src/backend/helpers/providerApi.ts new file mode 100644 index 00000000..528e392c --- /dev/null +++ b/src/backend/helpers/providerApi.ts @@ -0,0 +1,163 @@ +import { MetaOutput, NotFoundError, ScrapeMedia } from "@movie-web/providers"; +import { jwtDecode } from "jwt-decode"; + +import { mwFetch } from "@/backend/helpers/fetch"; +import { getTurnstileToken, isTurnstileInitialized } from "@/stores/turnstile"; + +let metaDataCache: MetaOutput[] | null = null; +let token: null | string = null; + +export function setCachedMetadata(data: MetaOutput[]) { + metaDataCache = data; +} + +export function getCachedMetadata(): MetaOutput[] { + return metaDataCache ?? []; +} + +export function setApiToken(newToken: string) { + token = newToken; +} + +function getTokenIfValid(): null | string { + if (!token) return null; + try { + const body = jwtDecode(token); + if (!body.exp) return `jwt|${token}`; + if (Date.now() / 1000 < body.exp) return `jwt|${token}`; + } catch (err) { + // we dont care about parse errors + } + return null; +} + +export async function fetchMetadata(base: string) { + if (metaDataCache) return; + const data = await mwFetch(`${base}/metadata`); + metaDataCache = data.flat(); +} + +function scrapeMediaToQueryMedia(media: ScrapeMedia) { + let extra: Record = {}; + if (media.type === "show") { + extra = { + episodeNumber: media.episode.number.toString(), + episodeTmdbId: media.episode.tmdbId, + seasonNumber: media.season.number.toString(), + seasonTmdbId: media.season.tmdbId, + }; + } + + return { + type: media.type, + releaseYear: media.releaseYear.toString(), + imdbId: media.imdbId, + tmdbId: media.tmdbId, + title: media.title, + ...extra, + }; +} + +function addQueryDataToUrl(url: URL, data: Record) { + Object.entries(data).forEach((entry) => { + if (entry[1]) url.searchParams.set(entry[0], entry[1]); + }); +} + +export function makeProviderUrl(base: string) { + const makeUrl = (p: string) => new URL(`${base}${p}`); + return { + scrapeSource(sourceId: string, media: ScrapeMedia) { + const url = makeUrl("/scrape/source"); + addQueryDataToUrl(url, scrapeMediaToQueryMedia(media)); + addQueryDataToUrl(url, { id: sourceId }); + return url.toString(); + }, + scrapeAll(media: ScrapeMedia) { + const url = makeUrl("/scrape"); + addQueryDataToUrl(url, scrapeMediaToQueryMedia(media)); + return url.toString(); + }, + scrapeEmbed(embedId: string, embedUrl: string) { + const url = makeUrl("/scrape/embed"); + addQueryDataToUrl(url, { id: embedId, url: embedUrl }); + return url.toString(); + }, + }; +} + +export async function getApiToken(): Promise { + let apiToken = getTokenIfValid(); + if (!apiToken && isTurnstileInitialized()) { + apiToken = `turnstile|${await getTurnstileToken()}`; + } + return apiToken; +} + +function parseEventInput(inp: string): any { + if (inp.length === 0) return {}; + return JSON.parse(inp); +} + +export async function connectServerSideEvents( + url: string, + endEvents: string[], +) { + const apiToken = await getApiToken(); + + // insert token, if its set + const parsedUrl = new URL(url); + if (apiToken) parsedUrl.searchParams.set("token", apiToken); + const eventSource = new EventSource(parsedUrl.toString()); + + let promReject: (reason?: any) => void; + let promResolve: (value: T) => void; + const promise = new Promise((resolve, reject) => { + promResolve = resolve; + promReject = reject; + }); + + endEvents.forEach((evt) => { + eventSource.addEventListener(evt, (e) => { + eventSource.close(); + promResolve(parseEventInput(e.data)); + }); + }); + + eventSource.addEventListener("token", (e) => { + setApiToken(parseEventInput(e.data)); + }); + + eventSource.addEventListener("error", (err: MessageEvent) => { + eventSource.close(); + if (err.data) { + const data = JSON.parse(err.data); + let errObj = new Error("scrape error"); + if (data.name === NotFoundError.name) + errObj = new NotFoundError("Notfound from server"); + Object.assign(errObj, data); + promReject(errObj); + return; + } + + console.error("Failed to connect to SSE", err); + promReject(err); + }); + + eventSource.addEventListener("message", (ev) => { + if (!ev) { + eventSource.close(); + return; + } + setTimeout(() => { + promReject(new Error("SSE closed improperly")); + }, 1000); + }); + + return { + promise: () => promise, + on(event: string, cb: (data: Data) => void) { + eventSource.addEventListener(event, (e) => cb(JSON.parse(e.data))); + }, + }; +} diff --git a/src/backend/helpers/report.ts b/src/backend/helpers/report.ts new file mode 100644 index 00000000..4822a867 --- /dev/null +++ b/src/backend/helpers/report.ts @@ -0,0 +1,165 @@ +import { ScrapeMedia } from "@movie-web/providers"; +import { nanoid } from "nanoid"; +import { ofetch } from "ofetch"; +import { useCallback } from "react"; + +import { isExtensionActiveCached } from "@/backend/extension/messaging"; +import { ScrapingItems, ScrapingSegment } from "@/hooks/useProviderScrape"; +import { useAuthStore } from "@/stores/auth"; +import { PlayerMeta } from "@/stores/player/slices/source"; + +// for anybody who cares - these are anonymous metrics. +// They are just used for figuring out if providers are broken or not +const metricsEndpoint = "https://backend.movie-web.app/metrics/providers"; +const captchaMetricsEndpoint = "https://backend.movie-web.app/metrics/captcha"; +const batchId = () => nanoid(32); + +export type ProviderMetric = { + tmdbId: string; + type: string; + title: string; + seasonId?: string; + episodeId?: string; + status: "failed" | "notfound" | "success"; + providerId: string; + embedId?: string; + errorMessage?: string; + fullError?: string; +}; + +export type ScrapeTool = "default" | "custom-proxy" | "extension"; + +export function getScrapeTool(): ScrapeTool { + if (isExtensionActiveCached()) return "extension"; + const hasProxySet = !!useAuthStore.getState().proxySet; + if (hasProxySet) return "custom-proxy"; + return "default"; +} + +function getStackTrace(error: Error, lines: number) { + const topMessage = error.toString(); + const stackTraceLines = (error.stack ?? "").split("\n", lines + 1); + stackTraceLines.pop(); + return `${topMessage}\n\n${stackTraceLines.join("\n")}`; +} + +export async function reportProviders(items: ProviderMetric[]): Promise { + return ofetch(metricsEndpoint, { + method: "POST", + body: { + items, + tool: getScrapeTool(), + batchId: batchId(), + }, + }); +} + +const segmentStatusMap: Record< + ScrapingSegment["status"], + ProviderMetric["status"] | null +> = { + success: "success", + notfound: "notfound", + failure: "failed", + pending: null, + waiting: null, +}; + +export function scrapeSourceOutputToProviderMetric( + media: PlayerMeta, + providerId: string, + embedId: string | null, + status: ProviderMetric["status"], + err: unknown | null, +): ProviderMetric { + const episodeId = media.episode?.tmdbId; + const seasonId = media.season?.tmdbId; + let error: undefined | Error; + if (err instanceof Error) error = err; + + return { + status, + providerId, + title: media.title, + tmdbId: media.tmdbId, + type: media.type, + embedId: embedId ?? undefined, + episodeId, + seasonId, + errorMessage: error?.message, + fullError: error ? getStackTrace(error, 5) : undefined, + }; +} + +export function scrapeSegmentToProviderMetric( + media: ScrapeMedia, + providerId: string, + segment: ScrapingSegment, +): ProviderMetric | null { + const status = segmentStatusMap[segment.status]; + if (!status) return null; + let episodeId: string | undefined; + let seasonId: string | undefined; + if (media.type === "show") { + episodeId = media.episode.tmdbId; + seasonId = media.season.tmdbId; + } + let error: undefined | Error; + if (segment.error instanceof Error) error = segment.error; + + return { + status, + providerId, + title: media.title, + tmdbId: media.tmdbId, + type: media.type, + embedId: segment.embedId, + episodeId, + seasonId, + errorMessage: segment.reason ?? error?.message, + fullError: error ? getStackTrace(error, 5) : undefined, + }; +} + +export function scrapePartsToProviderMetric( + media: ScrapeMedia, + order: ScrapingItems[], + sources: Record, +): ProviderMetric[] { + const output: ProviderMetric[] = []; + + order.forEach((orderItem) => { + const source = sources[orderItem.id]; + orderItem.children.forEach((embedId) => { + const embed = sources[embedId]; + if (!embed.embedId) return; + const metric = scrapeSegmentToProviderMetric(media, source.id, embed); + if (!metric) return; + output.push(metric); + }); + + const metric = scrapeSegmentToProviderMetric(media, source.id, source); + if (!metric) return; + output.push(metric); + }); + + return output; +} + +export function useReportProviders() { + const report = useCallback((items: ProviderMetric[]) => { + if (items.length === 0) return; + reportProviders(items).catch(() => {}); + }, []); + + return { report }; +} + +export function reportCaptchaSolve(success: boolean) { + ofetch(captchaMetricsEndpoint, { + method: "POST", + body: { + success, + }, + }).catch(() => {}); +} diff --git a/src/backend/helpers/subs.ts b/src/backend/helpers/subs.ts new file mode 100644 index 00000000..455f05a9 --- /dev/null +++ b/src/backend/helpers/subs.ts @@ -0,0 +1,33 @@ +import { list } from "subsrt-ts"; + +import { proxiedFetch } from "@/backend/helpers/fetch"; +import { convertSubtitlesToSrt } from "@/components/player/utils/captions"; +import { CaptionListItem } from "@/stores/player/slices/source"; +import { SimpleCache } from "@/utils/cache"; + +export const subtitleTypeList = list().map((type) => `.${type}`); +const downloadCache = new SimpleCache(); +downloadCache.setCompare((a, b) => a === b); +const expirySeconds = 24 * 60 * 60; + +/** + * Always returns SRT + */ +export async function downloadCaption( + caption: CaptionListItem, +): Promise { + const cached = downloadCache.get(caption.url); + if (cached) return cached; + + let data: string | undefined; + if (caption.needsProxy) { + data = await proxiedFetch(caption.url, { responseType: "text" }); + } else { + data = await fetch(caption.url).then((v) => v.text()); + } + if (!data) throw new Error("failed to get caption data"); + + const output = convertSubtitlesToSrt(data); + downloadCache.set(caption.url, output, expirySeconds); + return output; +} diff --git a/src/backend/metadata/getmeta.ts b/src/backend/metadata/getmeta.ts new file mode 100644 index 00000000..add1089e --- /dev/null +++ b/src/backend/metadata/getmeta.ts @@ -0,0 +1,214 @@ +import { FetchError } from "ofetch"; + +import { formatJWMeta, mediaTypeToJW } from "./justwatch"; +import { + TMDBIdToUrlId, + TMDBMediaToMediaType, + formatTMDBMeta, + getEpisodes, + getMediaDetails, + getMediaPoster, + getMovieFromExternalId, + mediaTypeToTMDB, +} from "./tmdb"; +import { + JWDetailedMeta, + JWSeasonMetaResult, + JW_API_BASE, +} from "./types/justwatch"; +import { MWMediaMeta, MWMediaType } from "./types/mw"; +import { + TMDBContentTypes, + TMDBMediaResult, + TMDBMovieData, + TMDBSeasonMetaResult, + TMDBShowData, +} from "./types/tmdb"; +import { makeUrl, proxiedFetch } from "../helpers/fetch"; + +export interface DetailedMeta { + meta: MWMediaMeta; + imdbId?: string; + tmdbId?: string; +} + +export function formatTMDBMetaResult( + details: TMDBShowData | TMDBMovieData, + type: MWMediaType, +): TMDBMediaResult { + if (type === MWMediaType.MOVIE) { + const movie = details as TMDBMovieData; + return { + id: details.id, + title: movie.title, + object_type: mediaTypeToTMDB(type), + poster: getMediaPoster(movie.poster_path) ?? undefined, + original_release_year: new Date(movie.release_date).getFullYear(), + }; + } + if (type === MWMediaType.SERIES) { + const show = details as TMDBShowData; + return { + id: details.id, + title: show.name, + object_type: mediaTypeToTMDB(type), + seasons: show.seasons.map((v) => ({ + id: v.id, + season_number: v.season_number, + title: v.name, + })), + poster: getMediaPoster(show.poster_path) ?? undefined, + original_release_year: new Date(show.first_air_date).getFullYear(), + }; + } + + throw new Error("unsupported type"); +} + +export async function getMetaFromId( + type: MWMediaType, + id: string, + seasonId?: string, +): Promise { + const details = await getMediaDetails(id, mediaTypeToTMDB(type)); + + if (!details) return null; + + const imdbId = details.external_ids.imdb_id ?? undefined; + + let seasonData: TMDBSeasonMetaResult | undefined; + + if (type === MWMediaType.SERIES) { + const seasons = (details as TMDBShowData).seasons; + + let selectedSeason = seasons.find((v) => v.id.toString() === seasonId); + if (!selectedSeason) { + selectedSeason = seasons.find((v) => v.season_number === 1); + } + + if (selectedSeason) { + const episodes = await getEpisodes( + details.id.toString(), + selectedSeason.season_number, + ); + + seasonData = { + id: selectedSeason.id.toString(), + season_number: selectedSeason.season_number, + title: selectedSeason.name, + episodes, + }; + } + } + + const tmdbmeta = formatTMDBMetaResult(details, type); + if (!tmdbmeta) return null; + const meta = formatTMDBMeta(tmdbmeta, seasonData); + if (!meta) return null; + + return { + meta, + imdbId, + tmdbId: id, + }; +} + +export async function getLegacyMetaFromId( + type: MWMediaType, + id: string, + seasonId?: string, +): Promise { + const queryType = mediaTypeToJW(type); + + let data: JWDetailedMeta; + try { + const url = makeUrl("/content/titles/{type}/{id}/locale/en_US", { + type: queryType, + id, + }); + data = await proxiedFetch(url, { baseURL: JW_API_BASE }); + } catch (err) { + if (err instanceof FetchError) { + // 400 and 404 are treated as not found + if (err.statusCode === 400 || err.statusCode === 404) return null; + } + throw err; + } + + let imdbId = data.external_ids.find((v) => v.provider === "imdb_latest") + ?.external_id; + if (!imdbId) + imdbId = data.external_ids.find((v) => v.provider === "imdb")?.external_id; + + let tmdbId = data.external_ids.find((v) => v.provider === "tmdb_latest") + ?.external_id; + if (!tmdbId) + tmdbId = data.external_ids.find((v) => v.provider === "tmdb")?.external_id; + + let seasonData: JWSeasonMetaResult | undefined; + if (data.object_type === "show") { + const seasonToScrape = seasonId ?? data.seasons?.[0].id.toString() ?? ""; + const url = makeUrl("/content/titles/show_season/{id}/locale/en_US", { + id: seasonToScrape, + }); + seasonData = await proxiedFetch(url, { baseURL: JW_API_BASE }); + } + + return { + meta: formatJWMeta(data, seasonData), + imdbId, + tmdbId, + }; +} + +export function isLegacyUrl(url: string): boolean { + if (url.startsWith("/media/JW") || url.startsWith("/media/tmdb-show")) + return true; + return false; +} + +export function isLegacyMediaType(url: string): boolean { + if (url.startsWith("/media/tmdb-show")) return true; + return false; +} + +export async function convertLegacyUrl( + url: string, +): Promise { + if (!isLegacyUrl(url)) return undefined; + + const urlParts = url.split("/").slice(2); + const [, type, id] = urlParts[0].split("-", 3); + const suffix = urlParts + .slice(1) + .map((v) => `/${v}`) + .join(""); + + if (isLegacyMediaType(url)) { + const details = await getMediaDetails(id, TMDBContentTypes.TV); + return `/media/${TMDBIdToUrlId( + MWMediaType.SERIES, + details.id.toString(), + details.name, + )}${suffix}`; + } + + const mediaType = TMDBMediaToMediaType(type as TMDBContentTypes); + const meta = await getLegacyMetaFromId(mediaType, id); + + if (!meta) return undefined; + const { tmdbId, imdbId } = meta; + if (!tmdbId && !imdbId) return undefined; + + // movies always have an imdb id on tmdb + if (imdbId && mediaType === MWMediaType.MOVIE) { + const movieId = await getMovieFromExternalId(imdbId); + if (movieId) { + return `/media/${TMDBIdToUrlId(mediaType, movieId, meta.meta.title)}`; + } + + if (tmdbId) { + return `/media/${TMDBIdToUrlId(mediaType, tmdbId, meta.meta.title)}`; + } + } +} diff --git a/src/backend/metadata/justwatch.ts b/src/backend/metadata/justwatch.ts new file mode 100644 index 00000000..f4c79063 --- /dev/null +++ b/src/backend/metadata/justwatch.ts @@ -0,0 +1,84 @@ +import { + JWContentTypes, + JWMediaResult, + JWSeasonMetaResult, + JW_IMAGE_BASE, +} from "./types/justwatch"; +import { MWMediaMeta, MWMediaType, MWSeasonMeta } from "./types/mw"; + +export function mediaTypeToJW(type: MWMediaType): JWContentTypes { + if (type === MWMediaType.MOVIE) return "movie"; + if (type === MWMediaType.SERIES) return "show"; + throw new Error("unsupported type"); +} + +export function JWMediaToMediaType(type: string): MWMediaType { + if (type === "movie") return MWMediaType.MOVIE; + if (type === "show") return MWMediaType.SERIES; + throw new Error("unsupported type"); +} + +export function formatJWMeta( + media: JWMediaResult, + season?: JWSeasonMetaResult, +): MWMediaMeta { + const type = JWMediaToMediaType(media.object_type); + let seasons: undefined | MWSeasonMeta[]; + if (type === MWMediaType.SERIES) { + seasons = media.seasons + ?.sort((a, b) => a.season_number - b.season_number) + .map( + (v): MWSeasonMeta => ({ + id: v.id.toString(), + number: v.season_number, + title: v.title, + }), + ); + } + + return { + title: media.title, + id: media.id.toString(), + year: media.original_release_year?.toString(), + poster: media.poster + ? `${JW_IMAGE_BASE}${media.poster.replace("{profile}", "s166")}` + : undefined, + type, + seasons: seasons as any, + seasonData: season + ? ({ + id: season.id.toString(), + number: season.season_number, + title: season.title, + episodes: season.episodes + .sort((a, b) => a.episode_number - b.episode_number) + .map((v) => ({ + id: v.id.toString(), + number: v.episode_number, + title: v.title, + })), + } as any) + : (undefined as any), + }; +} + +export function JWMediaToId(media: MWMediaMeta): string { + return ["JW", mediaTypeToJW(media.type), media.id].join("-"); +} + +export function decodeJWId( + paramId: string, +): { id: string; type: MWMediaType } | null { + const [prefix, type, id] = paramId.split("-", 3); + if (prefix !== "JW") return null; + let mediaType; + try { + mediaType = JWMediaToMediaType(type); + } catch { + return null; + } + return { + type: mediaType, + id, + }; +} diff --git a/src/backend/metadata/search.ts b/src/backend/metadata/search.ts new file mode 100644 index 00000000..fff64112 --- /dev/null +++ b/src/backend/metadata/search.ts @@ -0,0 +1,35 @@ +import { SimpleCache } from "@/utils/cache"; +import { MediaItem } from "@/utils/mediaTypes"; + +import { + formatTMDBMetaToMediaItem, + formatTMDBSearchResult, + multiSearch, +} from "./tmdb"; +import { MWQuery } from "./types/mw"; + +const cache = new SimpleCache(); +cache.setCompare((a, b) => { + return a.searchQuery.trim() === b.searchQuery.trim(); +}); +cache.initialize(); + +export async function searchForMedia(query: MWQuery): Promise { + if (cache.has(query)) return cache.get(query) as MediaItem[]; + const { searchQuery } = query; + + const data = await multiSearch(searchQuery); + const results = data.map((v) => { + const formattedResult = formatTMDBSearchResult(v, v.media_type); + return formatTMDBMetaToMediaItem(formattedResult); + }); + + const movieWithPosters = results.filter((movie) => movie.poster); + const movieWithoutPosters = results.filter((movie) => !movie.poster); + + const sortedresult = movieWithPosters.concat(movieWithoutPosters); + + // cache results for 1 hour + cache.set(query, sortedresult, 3600); + return sortedresult; +} diff --git a/src/backend/metadata/tmdb.ts b/src/backend/metadata/tmdb.ts new file mode 100644 index 00000000..2bae75d1 --- /dev/null +++ b/src/backend/metadata/tmdb.ts @@ -0,0 +1,273 @@ +import slugify from "slugify"; + +import { conf } from "@/setup/config"; +import { MediaItem } from "@/utils/mediaTypes"; + +import { MWMediaMeta, MWMediaType, MWSeasonMeta } from "./types/mw"; +import { + ExternalIdMovieSearchResult, + TMDBContentTypes, + TMDBEpisodeShort, + TMDBMediaResult, + TMDBMovieData, + TMDBMovieSearchResult, + TMDBSearchResult, + TMDBSeason, + TMDBSeasonMetaResult, + TMDBShowData, + TMDBShowSearchResult, +} from "./types/tmdb"; +import { mwFetch } from "../helpers/fetch"; + +export function mediaTypeToTMDB(type: MWMediaType): TMDBContentTypes { + if (type === MWMediaType.MOVIE) return TMDBContentTypes.MOVIE; + if (type === MWMediaType.SERIES) return TMDBContentTypes.TV; + throw new Error("unsupported type"); +} + +export function mediaItemTypeToMediaType(type: MediaItem["type"]): MWMediaType { + if (type === "movie") return MWMediaType.MOVIE; + if (type === "show") return MWMediaType.SERIES; + throw new Error("unsupported type"); +} + +export function TMDBMediaToMediaType(type: TMDBContentTypes): MWMediaType { + if (type === TMDBContentTypes.MOVIE) return MWMediaType.MOVIE; + if (type === TMDBContentTypes.TV) return MWMediaType.SERIES; + throw new Error("unsupported type"); +} + +export function TMDBMediaToMediaItemType( + type: TMDBContentTypes, +): MediaItem["type"] { + if (type === TMDBContentTypes.MOVIE) return "movie"; + if (type === TMDBContentTypes.TV) return "show"; + throw new Error("unsupported type"); +} + +export function formatTMDBMeta( + media: TMDBMediaResult, + season?: TMDBSeasonMetaResult, +): MWMediaMeta { + const type = TMDBMediaToMediaType(media.object_type); + let seasons: undefined | MWSeasonMeta[]; + if (type === MWMediaType.SERIES) { + seasons = media.seasons + ?.sort((a, b) => a.season_number - b.season_number) + .map( + (v): MWSeasonMeta => ({ + title: v.title, + id: v.id.toString(), + number: v.season_number, + }), + ); + } + + return { + title: media.title, + id: media.id.toString(), + year: media.original_release_year?.toString(), + poster: media.poster, + type, + seasons: seasons as any, + seasonData: season + ? { + id: season.id.toString(), + number: season.season_number, + title: season.title, + episodes: season.episodes + .sort((a, b) => a.episode_number - b.episode_number) + .map((v) => ({ + id: v.id.toString(), + number: v.episode_number, + title: v.title, + air_date: v.air_date, + })), + } + : (undefined as any), + }; +} + +export function formatTMDBMetaToMediaItem(media: TMDBMediaResult): MediaItem { + const type = TMDBMediaToMediaItemType(media.object_type); + + return { + title: media.title, + id: media.id.toString(), + year: media.original_release_year ?? 0, + poster: media.poster, + type, + }; +} + +export function TMDBIdToUrlId( + type: MWMediaType, + tmdbId: string, + title: string, +) { + return [ + "tmdb", + mediaTypeToTMDB(type), + tmdbId, + slugify(title, { lower: true, strict: true }), + ].join("-"); +} + +export function TMDBMediaToId(media: MWMediaMeta): string { + return TMDBIdToUrlId(media.type, media.id, media.title); +} + +export function mediaItemToId(media: MediaItem): string { + return TMDBIdToUrlId( + mediaItemTypeToMediaType(media.type), + media.id, + media.title, + ); +} + +export function decodeTMDBId( + paramId: string, +): { id: string; type: MWMediaType } | null { + const [prefix, type, id] = paramId.split("-", 3); + if (prefix !== "tmdb") return null; + let mediaType; + try { + mediaType = TMDBMediaToMediaType(type as TMDBContentTypes); + } catch { + return null; + } + return { + type: mediaType, + id, + }; +} + +const baseURL = "https://api.themoviedb.org/3"; + +const headers = { + accept: "application/json", + Authorization: `Bearer ${conf().TMDB_READ_API_KEY}`, +}; + +async function get(url: string, params?: object): Promise { + const res = await mwFetch(encodeURI(url), { + headers, + baseURL, + params: { + ...params, + }, + }); + return res; +} + +export async function multiSearch( + query: string, +): Promise<(TMDBMovieSearchResult | TMDBShowSearchResult)[]> { + const data = await get("search/multi", { + query, + include_adult: false, + language: "en-US", + page: 1, + }); + // filter out results that aren't movies or shows + const results = data.results.filter( + (r) => + r.media_type === TMDBContentTypes.MOVIE || + r.media_type === TMDBContentTypes.TV, + ); + return results; +} + +export async function generateQuickSearchMediaUrl( + query: string, +): Promise { + const data = await multiSearch(query); + if (data.length === 0) return undefined; + const result = data[0]; + const title = + result.media_type === TMDBContentTypes.MOVIE ? result.title : result.name; + + return `/media/${TMDBIdToUrlId( + TMDBMediaToMediaType(result.media_type), + result.id.toString(), + title, + )}`; +} + +// Conditional type which for inferring the return type based on the content type +type MediaDetailReturn = + T extends TMDBContentTypes.MOVIE + ? TMDBMovieData + : T extends TMDBContentTypes.TV + ? TMDBShowData + : never; + +export function getMediaDetails< + T extends TMDBContentTypes, + TReturn = MediaDetailReturn, +>(id: string, type: T): Promise { + if (type === TMDBContentTypes.MOVIE) { + return get(`/movie/${id}`, { append_to_response: "external_ids" }); + } + if (type === TMDBContentTypes.TV) { + return get(`/tv/${id}`, { append_to_response: "external_ids" }); + } + throw new Error("Invalid media type"); +} + +export function getMediaPoster(posterPath: string | null): string | undefined { + if (posterPath) return `https://image.tmdb.org/t/p/w342/${posterPath}`; +} + +export async function getEpisodes( + id: string, + season: number, +): Promise { + const data = await get(`/tv/${id}/season/${season}`); + return data.episodes.map((e) => ({ + id: e.id, + episode_number: e.episode_number, + title: e.name, + air_date: e.air_date, + })); +} + +export async function getMovieFromExternalId( + imdbId: string, +): Promise { + const data = await get(`/find/${imdbId}`, { + external_source: "imdb_id", + }); + + const movie = data.movie_results[0]; + if (!movie) return undefined; + + return movie.id.toString(); +} + +export function formatTMDBSearchResult( + result: TMDBMovieSearchResult | TMDBShowSearchResult, + mediatype: TMDBContentTypes, +): TMDBMediaResult { + const type = TMDBMediaToMediaType(mediatype); + if (type === MWMediaType.SERIES) { + const show = result as TMDBShowSearchResult; + return { + title: show.name, + poster: getMediaPoster(show.poster_path), + id: show.id, + original_release_year: new Date(show.first_air_date).getFullYear(), + object_type: mediatype, + }; + } + + const movie = result as TMDBMovieSearchResult; + + return { + title: movie.title, + poster: getMediaPoster(movie.poster_path), + id: movie.id, + original_release_year: new Date(movie.release_date).getFullYear(), + object_type: mediatype, + }; +} diff --git a/src/backend/metadata/types/justwatch.ts b/src/backend/metadata/types/justwatch.ts new file mode 100644 index 00000000..b55e9e24 --- /dev/null +++ b/src/backend/metadata/types/justwatch.ts @@ -0,0 +1,65 @@ +export type JWContentTypes = "movie" | "show"; + +export type JWSearchQuery = { + content_types: JWContentTypes[]; + page: number; + page_size: number; + query: string; +}; + +export type JWPage = { + items: T[]; + page: number; + page_size: number; + total_pages: number; + total_results: number; +}; + +export const JW_API_BASE = "https://apis.justwatch.com"; +export const JW_IMAGE_BASE = "https://images.justwatch.com"; + +export type JWSeasonShort = { + title: string; + id: number; + season_number: number; +}; + +export type JWEpisodeShort = { + title: string; + id: number; + episode_number: number; +}; + +export type JWMediaResult = { + title: string; + poster?: string; + id: number; + original_release_year?: number; + jw_entity_id: string; + object_type: JWContentTypes; + seasons?: JWSeasonShort[]; +}; + +export type JWSeasonMetaResult = { + title: string; + id: string; + season_number: number; + episodes: JWEpisodeShort[]; +}; + +export type JWExternalIdType = + | "eidr" + | "imdb_latest" + | "imdb" + | "tmdb_latest" + | "tmdb" + | "tms"; + +export interface JWExternalId { + provider: JWExternalIdType; + external_id: string; +} + +export interface JWDetailedMeta extends JWMediaResult { + external_ids: JWExternalId[]; +} diff --git a/src/backend/metadata/types/mw.ts b/src/backend/metadata/types/mw.ts new file mode 100644 index 00000000..7589c834 --- /dev/null +++ b/src/backend/metadata/types/mw.ts @@ -0,0 +1,53 @@ +export enum MWMediaType { + MOVIE = "movie", + SERIES = "series", + ANIME = "anime", +} + +export type MWSeasonMeta = { + id: string; + number: number; + title: string; +}; + +export type MWSeasonWithEpisodeMeta = { + id: string; + number: number; + title: string; + episodes: { + id: string; + number: number; + title: string; + air_date: string; + }[]; +}; + +type MWMediaMetaBase = { + title: string; + id: string; + year?: string; + poster?: string; +}; + +type MWMediaMetaSpecific = + | { + type: MWMediaType.MOVIE | MWMediaType.ANIME; + seasons: undefined; + } + | { + type: MWMediaType.SERIES; + seasons: MWSeasonMeta[]; + seasonData: MWSeasonWithEpisodeMeta; + }; + +export type MWMediaMeta = MWMediaMetaBase & MWMediaMetaSpecific; + +export interface MWQuery { + searchQuery: string; +} + +export interface DetailedMeta { + meta: MWMediaMeta; + imdbId?: string; + tmdbId?: string; +} diff --git a/src/backend/metadata/types/tmdb.ts b/src/backend/metadata/types/tmdb.ts new file mode 100644 index 00000000..1071d96c --- /dev/null +++ b/src/backend/metadata/types/tmdb.ts @@ -0,0 +1,289 @@ +export enum TMDBContentTypes { + MOVIE = "movie", + TV = "tv", +} + +export type TMDBSeasonShort = { + title: string; + id: number; + season_number: number; +}; + +export type TMDBEpisodeShort = { + title: string; + id: number; + episode_number: number; + air_date: string; +}; + +export type TMDBMediaResult = { + title: string; + poster?: string; + id: number; + original_release_year?: number; + object_type: TMDBContentTypes; + seasons?: TMDBSeasonShort[]; +}; + +export type TMDBSeasonMetaResult = { + title: string; + id: string; + season_number: number; + episodes: TMDBEpisodeShort[]; +}; + +export interface TMDBShowData { + adult: boolean; + backdrop_path: string | null; + created_by: { + id: number; + credit_id: string; + name: string; + gender: number; + profile_path: string | null; + }[]; + episode_run_time: number[]; + first_air_date: string; + genres: { + id: number; + name: string; + }[]; + homepage: string; + id: number; + in_production: boolean; + languages: string[]; + last_air_date: string; + last_episode_to_air: { + id: number; + name: string; + overview: string; + vote_average: number; + vote_count: number; + air_date: string; + episode_number: number; + production_code: string; + runtime: number | null; + season_number: number; + show_id: number; + still_path: string | null; + } | null; + name: string; + next_episode_to_air: { + id: number; + name: string; + overview: string; + vote_average: number; + vote_count: number; + air_date: string; + episode_number: number; + production_code: string; + runtime: number | null; + season_number: number; + show_id: number; + still_path: string | null; + } | null; + networks: { + id: number; + logo_path: string; + name: string; + origin_country: string; + }[]; + number_of_episodes: number; + number_of_seasons: number; + origin_country: string[]; + original_language: string; + original_name: string; + overview: string; + popularity: number; + poster_path: string | null; + production_companies: { + id: number; + logo_path: string | null; + name: string; + origin_country: string; + }[]; + production_countries: { + iso_3166_1: string; + name: string; + }[]; + seasons: { + air_date: string; + episode_count: number; + id: number; + name: string; + overview: string; + poster_path: string | null; + season_number: number; + }[]; + spoken_languages: { + english_name: string; + iso_639_1: string; + name: string; + }[]; + status: string; + tagline: string; + type: string; + vote_average: number; + vote_count: number; + external_ids: { + imdb_id: string | null; + }; +} + +export interface TMDBMovieData { + adult: boolean; + backdrop_path: string | null; + belongs_to_collection: { + id: number; + name: string; + poster_path: string | null; + backdrop_path: string | null; + } | null; + budget: number; + genres: { + id: number; + name: string; + }[]; + homepage: string | null; + id: number; + imdb_id: string | null; + original_language: string; + original_title: string; + overview: string | null; + popularity: number; + poster_path: string | null; + production_companies: { + id: number; + logo_path: string | null; + name: string; + origin_country: string; + }[]; + production_countries: { + iso_3166_1: string; + name: string; + }[]; + release_date: string; + revenue: number; + runtime: number | null; + spoken_languages: { + english_name: string; + iso_639_1: string; + name: string; + }[]; + status: string; + tagline: string | null; + title: string; + video: boolean; + vote_average: number; + vote_count: number; + external_ids: { + imdb_id: string | null; + }; +} + +export interface TMDBEpisodeResult { + season: number; + number: number; + title: string; + ids: { + trakt: number; + tvdb: number; + imdb: string; + tmdb: number; + }; +} + +export interface TMDBEpisode { + air_date: string; + episode_number: number; + id: number; + name: string; + overview: string; + production_code: string; + runtime: number; + season_number: number; + show_id: number; + still_path: string | null; + vote_average: number; + vote_count: number; + crew: any[]; + guest_stars: any[]; +} + +export interface TMDBSeason { + _id: string; + air_date: string; + episodes: TMDBEpisode[]; + name: string; + overview: string; + id: number; + poster_path: string | null; + season_number: number; +} + +export interface ExternalIdMovieSearchResult { + movie_results: { + adult: boolean; + backdrop_path: string; + id: number; + title: string; + original_language: string; + original_title: string; + overview: string; + poster_path: string; + media_type: string; + genre_ids: number[]; + popularity: number; + release_date: string; + video: boolean; + vote_average: number; + vote_count: number; + }[]; + person_results: any[]; + tv_results: any[]; + tv_episode_results: any[]; + tv_season_results: any[]; +} + +export interface TMDBMovieSearchResult { + adult: boolean; + backdrop_path: string; + id: number; + title: string; + original_language: string; + original_title: string; + overview: string; + poster_path: string; + media_type: TMDBContentTypes.MOVIE; + genre_ids: number[]; + popularity: number; + release_date: string; + video: boolean; + vote_average: number; + vote_count: number; +} + +export interface TMDBShowSearchResult { + adult: boolean; + backdrop_path: string; + id: number; + name: string; + original_language: string; + original_name: string; + overview: string; + poster_path: string; + media_type: TMDBContentTypes.TV; + genre_ids: number[]; + popularity: number; + first_air_date: string; + vote_average: number; + vote_count: number; + origin_country: string[]; +} + +export interface TMDBSearchResult { + page: number; + results: (TMDBMovieSearchResult | TMDBShowSearchResult)[]; + total_pages: number; + total_results: number; +} diff --git a/src/backend/providers/fetchers.ts b/src/backend/providers/fetchers.ts new file mode 100644 index 00000000..5cb6f6ba --- /dev/null +++ b/src/backend/providers/fetchers.ts @@ -0,0 +1,88 @@ +import { Fetcher, makeSimpleProxyFetcher } from "@movie-web/providers"; + +import { sendExtensionRequest } from "@/backend/extension/messaging"; +import { getApiToken, setApiToken } from "@/backend/helpers/providerApi"; +import { getProviderApiUrls, getProxyUrls } from "@/utils/proxyUrls"; + +import { convertBodyToObject, getBodyTypeFromBody } from "../extension/request"; + +function makeLoadbalancedList(getter: () => string[]) { + let listIndex = -1; + return () => { + const fetchers = getter(); + if (listIndex === -1 || listIndex >= fetchers.length) { + listIndex = Math.floor(Math.random() * fetchers.length); + } + const proxyUrl = fetchers[listIndex]; + listIndex = (listIndex + 1) % fetchers.length; + return proxyUrl; + }; +} + +export const getLoadbalancedProxyUrl = makeLoadbalancedList(getProxyUrls); +export const getLoadbalancedProviderApiUrl = + makeLoadbalancedList(getProviderApiUrls); + +async function fetchButWithApiTokens( + input: RequestInfo | URL, + init?: RequestInit | undefined, +): Promise { + const apiToken = await getApiToken(); + const headers = new Headers(init?.headers); + if (apiToken) headers.set("X-Token", apiToken); + const response = await fetch( + input, + init + ? { + ...init, + headers, + } + : undefined, + ); + const newApiToken = response.headers.get("X-Token"); + if (newApiToken) setApiToken(newApiToken); + return response; +} + +export function makeLoadBalancedSimpleProxyFetcher() { + const fetcher: Fetcher = async (a, b) => { + const currentFetcher = makeSimpleProxyFetcher( + getLoadbalancedProxyUrl(), + fetchButWithApiTokens, + ); + return currentFetcher(a, b); + }; + return fetcher; +} + +function makeFinalHeaders( + readHeaders: string[], + headers: Record, +): Headers { + const lowercasedHeaders = readHeaders.map((v) => v.toLowerCase()); + return new Headers( + Object.entries(headers).filter((entry) => + lowercasedHeaders.includes(entry[0].toLowerCase()), + ), + ); +} + +export function makeExtensionFetcher() { + const fetcher: Fetcher = async (url, ops) => { + const result = await sendExtensionRequest({ + url, + ...ops, + body: convertBodyToObject(ops.body), + bodyType: getBodyTypeFromBody(ops.body), + }); + if (!result?.success) throw new Error(`extension error: ${result?.error}`); + const res = result.response; + return { + body: res.body, + finalUrl: res.finalUrl, + statusCode: res.statusCode, + headers: makeFinalHeaders(ops.readHeaders, res.headers), + }; + }; + return fetcher; +} diff --git a/src/backend/providers/providers.ts b/src/backend/providers/providers.ts new file mode 100644 index 00000000..ac4a7dfa --- /dev/null +++ b/src/backend/providers/providers.ts @@ -0,0 +1,27 @@ +import { + makeProviders, + makeStandardFetcher, + targets, +} from "@movie-web/providers"; + +import { isExtensionActiveCached } from "@/backend/extension/messaging"; +import { + makeExtensionFetcher, + makeLoadBalancedSimpleProxyFetcher, +} from "@/backend/providers/fetchers"; + +export function getProviders() { + if (isExtensionActiveCached()) { + return makeProviders({ + fetcher: makeExtensionFetcher(), + target: targets.BROWSER_EXTENSION, + consistentIpForRequests: true, + }); + } + + return makeProviders({ + fetcher: makeStandardFetcher(fetch), + proxiedFetcher: makeLoadBalancedSimpleProxyFetcher(), + target: targets.BROWSER, + }); +} diff --git a/src/components/Avatar.tsx b/src/components/Avatar.tsx new file mode 100644 index 00000000..ec883def --- /dev/null +++ b/src/components/Avatar.tsx @@ -0,0 +1,95 @@ +import classNames from "classnames"; +import { useMemo } from "react"; + +import { base64ToBuffer, decryptData } from "@/backend/accounts/crypto"; +import { Icon, Icons } from "@/components/Icon"; +import { UserIcon } from "@/components/UserIcon"; +import { AccountProfile } from "@/pages/parts/auth/AccountCreatePart"; +import { useAuthStore } from "@/stores/auth"; + +export interface AvatarProps { + profile: AccountProfile["profile"]; + sizeClass?: string; + iconClass?: string; + bottom?: React.ReactNode; +} + +export function Avatar(props: AvatarProps) { + return ( +

    + ); +} + +export function UserAvatar(props: { + sizeClass?: string; + iconClass?: string; + bottom?: React.ReactNode; + withName?: boolean; +}) { + const auth = useAuthStore(); + + const bufferSeed = useMemo( + () => + auth.account && auth.account.seed + ? base64ToBuffer(auth.account.seed) + : null, + [auth], + ); + + if (!auth.account || auth.account === null) return null; + + const deviceName = bufferSeed + ? decryptData(auth.account.deviceName, bufferSeed) + : "..."; + + return ( + <> + + {props.withName && bufferSeed ? ( + + {deviceName.length >= 20 + ? `${deviceName.slice(0, 20 - 1)}…` + : deviceName} + + ) : null} + + ); +} + +export function NoUserAvatar(props: { iconClass?: string }) { + return ( +
    + +
    + ); +} diff --git a/src/components/FlagIcon.tsx b/src/components/FlagIcon.tsx new file mode 100644 index 00000000..5546aaad --- /dev/null +++ b/src/components/FlagIcon.tsx @@ -0,0 +1,60 @@ +import classNames from "classnames"; + +import { getCountryCodeForLocale } from "@/utils/language"; +import "flag-icons/css/flag-icons.min.css"; + +export interface FlagIconProps { + country?: string; + langCode?: string; +} + +export function FlagIcon(props: FlagIconProps) { + let countryCode: string | null = props.country ?? null; + if (props.langCode) countryCode = getCountryCodeForLocale(props.langCode); + + if (props.langCode === "tok") + return ( +
    + +
    + ); + + if (props.langCode === "pirate") + return ( +
    + +
    + ); + + if (props.langCode === "minion") + return ( +
    +
    +
    +
    +
    +
    +
    + ); + + // Galicia - Not a country (Is a region of Spain) so have to add the flag manually + if (props.langCode === "gl-ES") + return ( +
    + +
    + ); + + let backgroundClass = "bg-video-context-flagBg"; + if (countryCode === "np") backgroundClass = "bg-white"; + + return ( + + ); +} diff --git a/src/components/Icon.tsx b/src/components/Icon.tsx new file mode 100644 index 00000000..ec5e26cb --- /dev/null +++ b/src/components/Icon.tsx @@ -0,0 +1,170 @@ +import classNames from "classnames"; +import { memo, useEffect, useRef } from "react"; + +export enum Icons { + SEARCH = "search", + BOOKMARK = "bookmark", + BOOKMARK_OUTLINE = "bookmark_outline", + CLOCK = "clock", + EYE = "eye", + EYE_SLASH = "eyeSlash", + ARROW_LEFT = "arrowLeft", + ARROW_RIGHT = "arrowRight", + CHEVRON_DOWN = "chevronDown", + CHEVRON_UP = "chevronUp", + CHEVRON_RIGHT = "chevronRight", + CHEVRON_LEFT = "chevronLeft", + CLAPPER_BOARD = "clapperBoard", + FILM = "film", + DRAGON = "dragon", + WARNING = "warning", + MOVIE_WEB = "movieWeb", + DISCORD = "discord", + GITHUB = "github", + PLAY = "play", + PAUSE = "pause", + EXPAND = "expand", + COMPRESS = "compress", + VOLUME = "volume", + VOLUME_X = "volume_x", + X = "x", + EDIT = "edit", + AIRPLAY = "airplay", + EPISODES = "episodes", + SKIP_FORWARD = "skip_forward", + SKIP_BACKWARD = "skip_backward", + FILE = "file", + CAPTIONS = "captions", + LINK = "link", + CASTING = "casting", + CIRCLE_EXCLAMATION = "circle_exclamation", + DOWNLOAD = "download", + GEAR = "gear", + WATCH_PARTY = "watch_party", + PICTURE_IN_PICTURE = "pictureInPicture", + CHECKMARK = "checkmark", + TACHOMETER = "tachometer", + MAIL = "mail", + CIRCLE_CHECK = "circle_check", + SKIP_EPISODE = "skip_episode", + MORE_VERTICAL = "more_vertical", + IOS_SHARE = "ios_share", + IOS_FILES = "ios_files", + WAND = "wand", + COPY = "copy", + USER = "user", + UP_DOWN_ARROW = "up_down_arrow", + RISING_STAR = "rising_star", + SETTINGS = "settings", + COINS = "coins", + LOGOUT = "logout", + MENU = "menu", + LOCK = "lock", + UNLOCK = "unlock", + DONATION = "donation", + CIRCLE_QUESTION = "circle_question", + BRUSH = "brush", +} + +export interface IconProps { + icon: Icons; + className?: string; +} + +const iconList: Record = { + search: ``, + bookmark: ``, + clock: ``, + eye: ``, + eyeSlash: ``, + arrowLeft: ``, + chevronDown: ``, + chevronUp: ``, + chevronRight: ``, + chevronLeft: ``, + clapperBoard: ``, + film: ``, + dragon: ``, + warning: ``, + arrowRight: ``, + movieWeb: ``, + discord: ``, + github: ``, + play: ``, + pause: ``, + expand: ``, + compress: ``, + volume: ``, + volume_x: ``, + x: ``, + edit: ``, + bookmark_outline: ``, + airplay: ``, + episodes: ``, + skip_forward: ``, + skip_backward: ``, + file: ``, + captions: ``, + link: ``, + circle_exclamation: ``, + casting: "", + download: ``, + gear: ``, + watch_party: ``, + pictureInPicture: ``, + checkmark: ``, + tachometer: ``, + mail: ``, + circle_check: ``, + skip_episode: ``, + more_vertical: ``, + ios_share: ``, + ios_files: ``, + wand: ``, + copy: ``, + user: ``, + up_down_arrow: ``, + rising_star: ``, + settings: ``, + coins: ``, + logout: ``, + menu: ``, + lock: ``, + unlock: ``, + donation: ``, + circle_question: ``, + brush: ``, +}; + +function ChromeCastButton() { + const ref = useRef(null); + + useEffect(() => { + const tag = document.createElement("google-cast-launcher"); + tag.setAttribute("id", "castbutton"); + ref.current?.appendChild(tag); + }, []); + + return
    ; +} + +export const Icon = memo((props: IconProps) => { + if (props.icon === Icons.CASTING) { + return ; + } + + const flipClass = + props.icon === Icons.ARROW_LEFT || + props.icon === Icons.ARROW_RIGHT || + props.icon === Icons.CHEVRON_LEFT || + props.icon === Icons.CHEVRON_RIGHT + ? "rtl:-scale-x-100" + : ""; + + return ( + + ); +}); diff --git a/src/components/LinksDropdown.tsx b/src/components/LinksDropdown.tsx new file mode 100644 index 00000000..c0da66ee --- /dev/null +++ b/src/components/LinksDropdown.tsx @@ -0,0 +1,173 @@ +import classNames from "classnames"; +import { useCallback, useEffect, useMemo, useState } from "react"; +import { useTranslation } from "react-i18next"; +import { useNavigate } from "react-router-dom"; + +import { base64ToBuffer, decryptData } from "@/backend/accounts/crypto"; +import { UserAvatar } from "@/components/Avatar"; +import { Icon, Icons } from "@/components/Icon"; +import { Transition } from "@/components/utils/Transition"; +import { useAuth } from "@/hooks/auth/useAuth"; +import { conf } from "@/setup/config"; +import { useAuthStore } from "@/stores/auth"; + +function Divider() { + return
    ; +} + +function GoToLink(props: { + children: React.ReactNode; + href?: string; + className?: string; + onClick?: () => void; +}) { + const navigate = useNavigate(); + + const goTo = (href: string) => { + if (href.startsWith("http")) window.open(href, "_blank"); + else navigate(href); + }; + + return ( +
    { + evt.preventDefault(); + if (props.href) goTo(props.href); + else props.onClick?.(); + }} + className={props.className} + > + {props.children} + + ); +} + +function DropdownLink(props: { + children: React.ReactNode; + href?: string; + icon?: Icons; + highlight?: boolean; + className?: string; + onClick?: () => void; +}) { + return ( + + {props.icon ? : null} + {props.children} + + ); +} + +function CircleDropdownLink(props: { icon: Icons; href: string }) { + return ( + + + + ); +} + +export function LinksDropdown(props: { children: React.ReactNode }) { + const { t } = useTranslation(); + const [open, setOpen] = useState(false); + const deviceName = useAuthStore((s) => s.account?.deviceName); + const seed = useAuthStore((s) => s.account?.seed); + const bufferSeed = useMemo( + () => (seed ? base64ToBuffer(seed) : null), + [seed], + ); + const { logout } = useAuth(); + + useEffect(() => { + function onWindowClick(evt: MouseEvent) { + if ((evt.target as HTMLElement).closest(".is-dropdown")) return; + setOpen(false); + } + + window.addEventListener("click", onWindowClick); + return () => window.removeEventListener("click", onWindowClick); + }, []); + + const toggleOpen = useCallback(() => { + setOpen((s) => !s); + }, []); + + return ( +
    +
    evt.key === "Enter" && toggleOpen()} + > + {props.children} + +
    + +
    + {deviceName && bufferSeed ? ( + + + {decryptData(deviceName, bufferSeed)} + + ) : ( + + {t("navigation.menu.register")} + + )} + + + {t("navigation.menu.settings")} + + + {t("navigation.menu.about")} + + + {t("navigation.menu.donation")} + + {deviceName ? ( + + {t("navigation.menu.logout")} + + ) : null} + +
    + + + +
    +
    +
    +
    + ); +} diff --git a/src/components/UserIcon.tsx b/src/components/UserIcon.tsx new file mode 100644 index 00000000..a3d30421 --- /dev/null +++ b/src/components/UserIcon.tsx @@ -0,0 +1,35 @@ +import { memo } from "react"; + +import { Icon, Icons } from "@/components/Icon"; + +export enum UserIcons { + USER_GROUP = "userGroup", + COUCH = "couch", + MOBILE = "mobile", + TICKET = "ticket", + HANDCUFFS = "handcuffs", +} + +export interface UserIconProps { + icon: UserIcons; + className?: string; +} + +const iconList: Record = { + userGroup: ``, + couch: ``, + mobile: ``, + ticket: ``, + handcuffs: ``, +}; + +export const UserIcon = memo((props: UserIconProps) => { + const icon = iconList[props.icon]; + if (!icon) return ; + return ( + + ); +}); diff --git a/src/components/buttons/Button.tsx b/src/components/buttons/Button.tsx new file mode 100644 index 00000000..1c1a2b61 --- /dev/null +++ b/src/components/buttons/Button.tsx @@ -0,0 +1,142 @@ +import classNames from "classnames"; +import { ReactNode, useCallback } from "react"; +import { useNavigate } from "react-router-dom"; + +import { Icon, Icons } from "@/components/Icon"; +import { Spinner } from "@/components/layout/Spinner"; + +interface Props { + icon?: Icons; + onClick?: ( + event: React.MouseEvent, + ) => void; + children?: ReactNode; + theme?: "white" | "purple" | "secondary" | "danger"; + padding?: string; + className?: string; + href?: string; + disabled?: boolean; + download?: string; + loading?: boolean; +} + +export function Button(props: Props) { + const navigate = useNavigate(); + const { onClick, href, loading } = props; + const cb = useCallback( + ( + event: React.MouseEvent< + HTMLAnchorElement | HTMLButtonElement, + MouseEvent + >, + ) => { + if (loading) return; + if (href && !onClick) navigate(href); + else onClick?.(event); + }, + [onClick, href, navigate, loading], + ); + + let colorClasses = "bg-white hover:bg-gray-200 text-black"; + if (props.theme === "purple") + colorClasses = "bg-buttons-purple hover:bg-buttons-purpleHover text-white"; + if (props.theme === "secondary") + colorClasses = + "bg-buttons-cancel hover:bg-buttons-cancelHover transition-colors duration-100 text-white"; + if (props.theme === "danger") + colorClasses = "bg-buttons-danger hover:bg-buttons-dangerHover text-white"; + + let classes = classNames( + "tabbable cursor-pointer inline-flex items-center justify-center rounded-lg font-medium transition-[transform,background-color] duration-100 active:scale-105 md:px-8", + props.padding ?? "px-4 py-3", + props.className, + colorClasses, + props.disabled ? "!cursor-not-allowed bg-opacity-60 text-opacity-60" : null, + ); + + if (props.disabled) + classes = classes + .split(" ") + .filter( + (className) => + !className.startsWith("hover:") && !className.startsWith("active:"), + ) + .join(" "); + + const content = ( + <> + {props.icon && !props.loading ? ( + + + + ) : null} + {props.loading ? ( + + + + ) : null} + {props.children} + + ); + + if ( + props.href && + (props.href.startsWith("https://") || props.href?.startsWith("data:")) + ) + return ( + + {content} + + ); + + if (props.href) + return ( + + {content} + + ); + + return ( + + ); +} + +// Sometimes you can't use normal button, due to not having access to a useHistory context +// When that happens, use this! +interface ButtonPlainProps { + onClick?: () => void; + children?: ReactNode; + theme?: "white" | "purple" | "secondary"; + className?: string; +} + +export function ButtonPlain(props: ButtonPlainProps) { + let colorClasses = "bg-white hover:bg-gray-200 text-black"; + if (props.theme === "purple") + colorClasses = "bg-buttons-purple hover:bg-buttons-purpleHover text-white"; + if (props.theme === "secondary") + colorClasses = + "bg-buttons-cancel hover:bg-buttons-cancelHover transition-colors duration-100 text-white"; + + const classes = classNames( + "cursor-pointer inline-flex items-center justify-center rounded-lg font-medium transition-[transform,background-color] duration-100 active:scale-105 md:px-8", + "px-4 py-3", + props.className, + colorClasses, + ); + + return ( + + ); +} diff --git a/src/components/buttons/EditButton.tsx b/src/components/buttons/EditButton.tsx new file mode 100644 index 00000000..793fb7c3 --- /dev/null +++ b/src/components/buttons/EditButton.tsx @@ -0,0 +1,37 @@ +import { useAutoAnimate } from "@formkit/auto-animate/react"; +import { useCallback } from "react"; +import { useTranslation } from "react-i18next"; + +import { Icon, Icons } from "@/components/Icon"; + +export interface EditButtonProps { + editing: boolean; + onEdit?: (editing: boolean) => void; +} + +export function EditButton(props: EditButtonProps) { + const { t } = useTranslation(); + const [parent] = useAutoAnimate(); + + const onClick = useCallback(() => { + props.onEdit?.(!props.editing); + }, [props]); + + return ( + + ); +} diff --git a/src/components/buttons/IconPatch.tsx b/src/components/buttons/IconPatch.tsx new file mode 100644 index 00000000..b9a7e525 --- /dev/null +++ b/src/components/buttons/IconPatch.tsx @@ -0,0 +1,34 @@ +import { Icon, Icons } from "@/components/Icon"; + +export interface IconPatchProps { + active?: boolean; + onClick?: () => void; + clickable?: boolean; + className?: string; + icon: Icons; + transparent?: boolean; + downsized?: boolean; +} + +export function IconPatch(props: IconPatchProps) { + const clickableClasses = props.clickable + ? "cursor-pointer hover:scale-110 hover:bg-pill-backgroundHover hover:text-white active:scale-125" + : ""; + const transparentClasses = props.transparent + ? "bg-opacity-0 hover:bg-opacity-50" + : ""; + const activeClasses = props.active + ? "bg-pill-backgroundHover text-white" + : ""; + const sizeClasses = props.downsized ? "h-10 w-10" : "h-12 w-12"; + + return ( +
    +
    + +
    +
    + ); +} diff --git a/src/components/buttons/Toggle.tsx b/src/components/buttons/Toggle.tsx new file mode 100644 index 00000000..8cedc245 --- /dev/null +++ b/src/components/buttons/Toggle.tsx @@ -0,0 +1,23 @@ +import classNames from "classnames"; + +export function Toggle(props: { onClick?: () => void; enabled?: boolean }) { + return ( + + ); +} diff --git a/src/components/form/ColorPicker.tsx b/src/components/form/ColorPicker.tsx new file mode 100644 index 00000000..ae323156 --- /dev/null +++ b/src/components/form/ColorPicker.tsx @@ -0,0 +1,40 @@ +import classNames from "classnames"; + +import { Icon, Icons } from "../Icon"; + +const colors = ["#0A54FF", "#CF2E68", "#F9DD7F", "#7652DD", "#2ECFA8"]; +export const initialColor = colors[0]; + +export function ColorPicker(props: { + label: string; + value: string; + onInput: (v: string) => void; +}) { + return ( +
    + {props.label ? ( +

    {props.label}

    + ) : null} + +
    + {colors.map((color) => { + return ( + + ); + })} +
    +
    + ); +} diff --git a/src/components/form/Dropdown.tsx b/src/components/form/Dropdown.tsx new file mode 100644 index 00000000..df647b5f --- /dev/null +++ b/src/components/form/Dropdown.tsx @@ -0,0 +1,68 @@ +import { Listbox, Transition } from "@headlessui/react"; +import React, { Fragment } from "react"; + +import { Icon, Icons } from "@/components/Icon"; + +export interface OptionItem { + id: string; + name: string; + leftIcon?: React.ReactNode; +} + +interface DropdownProps { + selectedItem: OptionItem; + setSelectedItem: (value: OptionItem) => void; + options: Array; +} + +export function Dropdown(props: DropdownProps) { + return ( +
    + + {() => ( + <> + + + {props.selectedItem.leftIcon + ? props.selectedItem.leftIcon + : null} + {props.selectedItem.name} + + + + + + + + {props.options.map((opt) => ( + + `cursor-pointer flex gap-4 items-center relative select-none py-3 pl-4 pr-4 ${ + active + ? "bg-background-secondaryHover text-type-link" + : "text-white" + }` + } + key={opt.id} + value={opt} + > + {opt.leftIcon ? opt.leftIcon : null} + {opt.name} + + ))} + + + + )} + +
    + ); +} diff --git a/src/components/form/IconPicker.tsx b/src/components/form/IconPicker.tsx new file mode 100644 index 00000000..fa8a8a3a --- /dev/null +++ b/src/components/form/IconPicker.tsx @@ -0,0 +1,47 @@ +import classNames from "classnames"; + +import { UserIcon, UserIcons } from "../UserIcon"; + +const icons = [ + UserIcons.USER_GROUP, + UserIcons.COUCH, + UserIcons.MOBILE, + UserIcons.TICKET, + UserIcons.HANDCUFFS, +]; +export const initialIcon = icons[0]; + +export function IconPicker(props: { + label: string; + value: UserIcons; + onInput: (v: UserIcons) => void; +}) { + return ( +
    + {props.label ? ( +

    {props.label}

    + ) : null} + +
    + {icons.map((icon) => { + return ( + + ); + })} +
    +
    + ); +} diff --git a/src/components/form/PassphraseDisplay.tsx b/src/components/form/PassphraseDisplay.tsx new file mode 100644 index 00000000..92918373 --- /dev/null +++ b/src/components/form/PassphraseDisplay.tsx @@ -0,0 +1,57 @@ +import { useRef, useState } from "react"; +import { useTranslation } from "react-i18next"; +import { useCopyToClipboard, useMountedState } from "react-use"; + +import { Icon, Icons } from "../Icon"; + +export function PassphraseDisplay(props: { mnemonic: string }) { + const { t } = useTranslation(); + const individualWords = props.mnemonic.split(" "); + + const [, copy] = useCopyToClipboard(); + + const [hasCopied, setHasCopied] = useState(false); + const isMounted = useMountedState(); + + const timeout = useRef>(); + + function copyMnemonic() { + copy(props.mnemonic); + setHasCopied(true); + if (timeout.current) clearTimeout(timeout.current); + timeout.current = setTimeout(() => isMounted() && setHasCopied(false), 500); + } + + return ( +
    +
    +

    + {t("auth.generate.passphraseFrameLabel")} +

    + +
    +
    + {individualWords.map((word, i) => ( +
    + {word} +
    + ))} +
    +
    + ); +} diff --git a/src/components/form/SearchBar.tsx b/src/components/form/SearchBar.tsx new file mode 100644 index 00000000..6ac6128f --- /dev/null +++ b/src/components/form/SearchBar.tsx @@ -0,0 +1,78 @@ +import c from "classnames"; +import { forwardRef, useState } from "react"; + +import { Flare } from "@/components/utils/Flare"; + +import { Icon, Icons } from "../Icon"; +import { TextInputControl } from "../text-inputs/TextInputControl"; + +export interface SearchBarProps { + placeholder?: string; + onChange: (value: string, force: boolean) => void; + onUnFocus: (newSearch?: string) => void; + value: string; +} + +export const SearchBarInput = forwardRef( + (props, ref) => { + const [focused, setFocused] = useState(false); + + function setSearch(value: string) { + props.onChange(value, false); + } + + return ( + + + +
    + +
    + + { + setFocused(false); + props.onUnFocus(); + }} + onFocus={() => setFocused(true)} + onChange={(val) => setSearch(val)} + value={props.value} + className="w-full flex-1 bg-transparent px-4 py-4 pl-12 text-search-text placeholder-search-placeholder focus:outline-none sm:py-4 sm:pr-2" + placeholder={props.placeholder} + /> + + {props.value.length > 0 && ( +
    { + props.onUnFocus(""); + if (ref && typeof ref !== "function") { + ref.current?.focus(); + } + }} + className="cursor-pointer hover:text-white absolute bottom-0 right-2 top-0 flex justify-center my-auto h-10 w-10 items-center hover:bg-search-hoverBackground active:scale-110 text-search-icon rounded-full transition-[transform,background-color] duration-200" + > + +
    + )} +
    +
    + ); + }, +); diff --git a/src/components/layout/Box.tsx b/src/components/layout/Box.tsx new file mode 100644 index 00000000..d1e30026 --- /dev/null +++ b/src/components/layout/Box.tsx @@ -0,0 +1,9 @@ +import { ReactNode } from "react"; + +export function Box(props: { children?: ReactNode }) { + return ( +
    + {props.children} +
    + ); +} diff --git a/src/components/layout/BrandPill.tsx b/src/components/layout/BrandPill.tsx new file mode 100644 index 00000000..109dbd2c --- /dev/null +++ b/src/components/layout/BrandPill.tsx @@ -0,0 +1,34 @@ +import classNames from "classnames"; +import { useTranslation } from "react-i18next"; + +import { Icon, Icons } from "@/components/Icon"; + +export function BrandPill(props: { + clickable?: boolean; + hideTextOnMobile?: boolean; + backgroundClass?: string; +}) { + const { t } = useTranslation(); + + return ( +
    + + + {t("global.name")} + +
    + ); +} diff --git a/src/components/layout/Footer.tsx b/src/components/layout/Footer.tsx new file mode 100644 index 00000000..44c61058 --- /dev/null +++ b/src/components/layout/Footer.tsx @@ -0,0 +1,109 @@ +import { useCallback } from "react"; +import { useTranslation } from "react-i18next"; +import { useNavigate } from "react-router-dom"; +import type { RequireExactlyOne } from "type-fest"; + +import { Icon, Icons } from "@/components/Icon"; +import { BrandPill } from "@/components/layout/BrandPill"; +import { WideContainer } from "@/components/layout/WideContainer"; +import { shouldHaveDmcaPage } from "@/pages/Dmca"; +import { conf } from "@/setup/config"; + +// to and href are mutually exclusive +type FooterLinkProps = RequireExactlyOne< + { + children: React.ReactNode; + icon: Icons; + to: string; + href: string; + }, + "to" | "href" +>; + +function FooterLink(props: FooterLinkProps) { + const navigate = useNavigate(); + + const navigateTo = useCallback(() => { + if (!props.to) return; + + navigate(props.to); + }, [navigate, props.to]); + + return ( + + + {props.children} + + ); +} + +function Dmca() { + const { t } = useTranslation(); + + if (!shouldHaveDmcaPage()) return null; + + return ( + + {t("footer.links.dmca")} + + ); +} + +export function Footer() { + const { t } = useTranslation(); + + return ( +
    + +
    +
    + +
    +

    {t("footer.tagline")}

    +
    +
    +

    + {t("footer.legal.disclaimer")} +

    +

    {t("footer.legal.disclaimerText")}

    +
    +
    + + {t("footer.links.github")} + + + {t("footer.links.discord")} + +
    + +
    +
    +
    + +
    +
    +
    + ); +} + +export function FooterView(props: { + children: React.ReactNode; + className?: string; +}) { + return ( +
    +
    {props.children}
    +
    +
    + ); +} diff --git a/src/components/layout/IconPill.tsx b/src/components/layout/IconPill.tsx new file mode 100644 index 00000000..6530e773 --- /dev/null +++ b/src/components/layout/IconPill.tsx @@ -0,0 +1,13 @@ +import { Icon, Icons } from "@/components/Icon"; + +export function IconPill(props: { icon: Icons; children?: React.ReactNode }) { + return ( +
    + + {props.children} +
    + ); +} diff --git a/src/components/layout/LargeCard.tsx b/src/components/layout/LargeCard.tsx new file mode 100644 index 00000000..dbc010af --- /dev/null +++ b/src/components/layout/LargeCard.tsx @@ -0,0 +1,58 @@ +import classNames from "classnames"; + +export function LargeCard(props: { + children: React.ReactNode; + top?: React.ReactNode; +}) { + return ( +
    + {props.top ? ( +
    + {props.top} +
    + ) : null} +
    + {props.children} +
    +
    + ); +} + +export function LargeCardText(props: { + title: string; + children?: React.ReactNode; + icon?: React.ReactNode; +}) { + return ( +
    +
    + {props.icon ? ( +
    {props.icon}
    + ) : null} +

    {props.title}

    + {props.children ? ( +
    {props.children}
    + ) : null} +
    +
    + ); +} + +export function LargeCardButtons(props: { + children: React.ReactNode; + splitAlign?: boolean; +}) { + return ( +
    +
    + {props.children} +
    +
    + ); +} diff --git a/src/components/layout/Loading.tsx b/src/components/layout/Loading.tsx new file mode 100644 index 00000000..4c4c62bd --- /dev/null +++ b/src/components/layout/Loading.tsx @@ -0,0 +1,22 @@ +export interface LoadingProps { + text?: string; + className?: string; +} + +export function Loading(props: LoadingProps) { + return ( +
    +
    +
    +
    +
    +
    +
    +
    + {props.text && props.text.length ? ( +

    {props.text}

    + ) : null} +
    +
    + ); +} diff --git a/src/components/layout/Navigation.tsx b/src/components/layout/Navigation.tsx new file mode 100644 index 00000000..d9398aba --- /dev/null +++ b/src/components/layout/Navigation.tsx @@ -0,0 +1,116 @@ +import classNames from "classnames"; +import { Link } from "react-router-dom"; + +import { NoUserAvatar, UserAvatar } from "@/components/Avatar"; +import { IconPatch } from "@/components/buttons/IconPatch"; +import { Icons } from "@/components/Icon"; +import { LinksDropdown } from "@/components/LinksDropdown"; +import { Lightbar } from "@/components/utils/Lightbar"; +import { useAuth } from "@/hooks/auth/useAuth"; +import { BlurEllipsis } from "@/pages/layouts/SubPageLayout"; +import { conf } from "@/setup/config"; +import { useBannerSize } from "@/stores/banner"; + +import { BrandPill } from "./BrandPill"; + +export interface NavigationProps { + bg?: boolean; + noLightbar?: boolean; + doBackground?: boolean; +} + +export function Navigation(props: NavigationProps) { + const bannerHeight = useBannerSize(); + const { loggedIn } = useAuth(); + + return ( + <> + {/* lightbar */} + {!props.noLightbar ? ( +
    +
    + +
    +
    + ) : null} + + {/* backgrounds - these are seperate because of z-index issues */} +
    +
    + {props.doBackground ? ( +
    + +
    + ) : null} +
    +
    +
    +
    +
    +
    + + {/* content */} +
    +
    +
    +
    + + + + + + + + + +
    +
    + + {loggedIn ? : } + +
    +
    +
    +
    + + ); +} diff --git a/src/components/layout/ProgressRing.tsx b/src/components/layout/ProgressRing.tsx new file mode 100644 index 00000000..d0e680a9 --- /dev/null +++ b/src/components/layout/ProgressRing.tsx @@ -0,0 +1,39 @@ +interface Props { + className?: string; + radius?: number; + percentage: number; + backingRingClassname?: string; +} + +export function ProgressRing(props: Props) { + const radius = props.radius ?? 40; + + return ( + + + + + ); +} diff --git a/src/components/layout/SectionHeading.tsx b/src/components/layout/SectionHeading.tsx new file mode 100644 index 00000000..ef994557 --- /dev/null +++ b/src/components/layout/SectionHeading.tsx @@ -0,0 +1,28 @@ +import { ReactNode } from "react"; + +import { Icon, Icons } from "@/components/Icon"; + +interface SectionHeadingProps { + icon?: Icons; + title: string; + children?: ReactNode; + className?: string; +} + +export function SectionHeading(props: SectionHeadingProps) { + return ( +
    +
    +

    + {props.icon ? ( + + + + ) : null} + {props.title} +

    + {props.children} +
    +
    + ); +} diff --git a/src/components/layout/SettingsCard.tsx b/src/components/layout/SettingsCard.tsx new file mode 100644 index 00000000..4be0ce9e --- /dev/null +++ b/src/components/layout/SettingsCard.tsx @@ -0,0 +1,37 @@ +import classNames from "classnames"; + +export function SettingsCard(props: { + children: React.ReactNode; + className?: string; + paddingClass?: string; +}) { + return ( +
    + {props.children} +
    + ); +} + +export function SolidSettingsCard(props: { + children: React.ReactNode; + className?: string; + paddingClass?: string; +}) { + return ( +
    + {props.children} +
    + ); +} diff --git a/src/components/layout/Sidebar.tsx b/src/components/layout/Sidebar.tsx new file mode 100644 index 00000000..f5c2a176 --- /dev/null +++ b/src/components/layout/Sidebar.tsx @@ -0,0 +1,47 @@ +import classNames from "classnames"; + +import { Icon, Icons } from "@/components/Icon"; + +export function SidebarSection(props: { + title: string; + children: React.ReactNode; + className?: string; +}) { + return ( +
    +

    + {props.title} +

    + {props.children} +
    + ); +} + +export function SidebarLink(props: { + children: React.ReactNode; + icon: Icons; + active?: boolean; + onClick?: () => void; +}) { + return ( + + ); +} diff --git a/src/components/layout/Spinner.css b/src/components/layout/Spinner.css new file mode 100644 index 00000000..aa7cc1bc --- /dev/null +++ b/src/components/layout/Spinner.css @@ -0,0 +1,19 @@ +.spinner { + width: 1em; + height: 1em; + border: 0.12em solid var(--color,white); + border-bottom-color: transparent; + border-radius: 50%; + display: inline-block; + box-sizing: border-box; + animation: spinner-rotation 800ms linear infinite; +} + +@keyframes spinner-rotation { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} diff --git a/src/components/layout/Spinner.tsx b/src/components/layout/Spinner.tsx new file mode 100644 index 00000000..77e06cfd --- /dev/null +++ b/src/components/layout/Spinner.tsx @@ -0,0 +1,9 @@ +import "./Spinner.css"; + +interface SpinnerProps { + className?: string; +} + +export function Spinner(props: SpinnerProps) { + return
    ; +} diff --git a/src/components/layout/Stepper.tsx b/src/components/layout/Stepper.tsx new file mode 100644 index 00000000..75dc150b --- /dev/null +++ b/src/components/layout/Stepper.tsx @@ -0,0 +1,25 @@ +export interface StepperProps { + current: number; + steps: number; + className?: string; +} + +export function Stepper(props: StepperProps) { + const percentage = (props.current / props.steps) * 100; + + return ( +
    +

    + {props.current}/{props.steps} +

    +
    +
    +
    +
    + ); +} diff --git a/src/components/layout/ThinContainer.tsx b/src/components/layout/ThinContainer.tsx new file mode 100644 index 00000000..9f06f579 --- /dev/null +++ b/src/components/layout/ThinContainer.tsx @@ -0,0 +1,32 @@ +import classNames from "classnames"; +import { ReactNode } from "react"; + +interface ThinContainerProps { + classNames?: string; + children?: ReactNode; +} + +export function ThinContainer(props: ThinContainerProps) { + return ( +
    + {props.children} +
    + ); +} + +export function CenterContainer(props: ThinContainerProps) { + return ( +
    +
    {props.children}
    +
    + ); +} diff --git a/src/components/layout/WideContainer.tsx b/src/components/layout/WideContainer.tsx new file mode 100644 index 00000000..bcccd5e5 --- /dev/null +++ b/src/components/layout/WideContainer.tsx @@ -0,0 +1,19 @@ +import { ReactNode } from "react"; + +interface WideContainerProps { + classNames?: string; + children?: ReactNode; + ultraWide?: boolean; +} + +export function WideContainer(props: WideContainerProps) { + return ( +
    + {props.children} +
    + ); +} diff --git a/src/components/media/MediaCard.tsx b/src/components/media/MediaCard.tsx new file mode 100644 index 00000000..cad3ae6a --- /dev/null +++ b/src/components/media/MediaCard.tsx @@ -0,0 +1,173 @@ +import classNames from "classnames"; +import { useTranslation } from "react-i18next"; +import { Link } from "react-router-dom"; + +import { mediaItemToId } from "@/backend/metadata/tmdb"; +import { DotList } from "@/components/text/DotList"; +import { Flare } from "@/components/utils/Flare"; +import { MediaItem } from "@/utils/mediaTypes"; + +import { IconPatch } from "../buttons/IconPatch"; +import { Icons } from "../Icon"; + +export interface MediaCardProps { + media: MediaItem; + linkable?: boolean; + series?: { + episode: number; + season?: number; + episodeId: string; + seasonId: string; + }; + percentage?: number; + closable?: boolean; + onClose?: () => void; +} + +function MediaCardContent({ + media, + linkable, + series, + percentage, + closable, + onClose, +}: MediaCardProps) { + const { t } = useTranslation(); + const percentageString = `${Math.round(percentage ?? 0).toFixed(0)}%`; + + const canLink = linkable && !closable; + + const dotListContent = [t(`media.types.${media.type}`)]; + if (media.year) dotListContent.push(media.year.toFixed()); + + return ( + e.key === "Enter" && e.currentTarget.click()} + > + + +
    + {series ? ( +
    +

    + {t("media.episodeDisplay", { + season: series.season || 1, + episode: series.episode, + })} +

    +
    + ) : null} + + {percentage !== undefined ? ( + <> +
    +
    +
    +
    +
    +
    +
    + + ) : null} + +
    + closable && onClose?.()} + icon={Icons.X} + /> +
    +
    +

    + {media.title} +

    + + + + ); +} + +export function MediaCard(props: MediaCardProps) { + const content = ; + + const canLink = props.linkable && !props.closable; + + let link = canLink + ? `/media/${encodeURIComponent(mediaItemToId(props.media))}` + : "#"; + if (canLink && props.series) { + if (props.series.season === 0 && !props.series.episodeId) { + link += `/${encodeURIComponent(props.series.seasonId)}`; + } else { + link += `/${encodeURIComponent( + props.series.seasonId, + )}/${encodeURIComponent(props.series.episodeId)}`; + } + } + + if (!props.linkable) return {content}; + return ( + + {content} + + ); +} diff --git a/src/components/media/MediaGrid.tsx b/src/components/media/MediaGrid.tsx new file mode 100644 index 00000000..adb9b932 --- /dev/null +++ b/src/components/media/MediaGrid.tsx @@ -0,0 +1,18 @@ +import { forwardRef } from "react"; + +interface MediaGridProps { + children?: React.ReactNode; +} + +export const MediaGrid = forwardRef( + (props, ref) => { + return ( +
    + {props.children} +
    + ); + }, +); diff --git a/src/components/media/WatchedMediaCard.tsx b/src/components/media/WatchedMediaCard.tsx new file mode 100644 index 00000000..b7640efd --- /dev/null +++ b/src/components/media/WatchedMediaCard.tsx @@ -0,0 +1,51 @@ +import { useMemo } from "react"; + +import { useProgressStore } from "@/stores/progress"; +import { + ShowProgressResult, + shouldShowProgress, +} from "@/stores/progress/utils"; +import { MediaItem } from "@/utils/mediaTypes"; + +import { MediaCard } from "./MediaCard"; + +function formatSeries(series?: ShowProgressResult | null) { + if (!series || !series.episode || !series.season) return undefined; + return { + episode: series.episode?.number, + season: series.season?.number, + episodeId: series.episode?.id, + seasonId: series.season?.id, + }; +} + +export interface WatchedMediaCardProps { + media: MediaItem; + closable?: boolean; + onClose?: () => void; +} + +export function WatchedMediaCard(props: WatchedMediaCardProps) { + const progressItems = useProgressStore((s) => s.items); + const item = useMemo(() => { + return progressItems[props.media.id]; + }, [progressItems, props.media]); + const itemToDisplay = useMemo( + () => (item ? shouldShowProgress(item) : null), + [item], + ); + const percentage = itemToDisplay?.show + ? (itemToDisplay.progress.watched / itemToDisplay.progress.duration) * 100 + : undefined; + + return ( + + ); +} diff --git a/src/components/overlays/Modal.tsx b/src/components/overlays/Modal.tsx new file mode 100644 index 00000000..08abdbba --- /dev/null +++ b/src/components/overlays/Modal.tsx @@ -0,0 +1,42 @@ +import { ReactNode, useCallback } from "react"; +import { Helmet } from "react-helmet-async"; + +import { OverlayPortal } from "@/components/overlays/OverlayDisplay"; +import { useQueryParam } from "@/hooks/useQueryParams"; + +export function useModal(id: string) { + const [currentModal, setCurrentModal] = useQueryParam("m"); + const show = useCallback(() => setCurrentModal(id), [id, setCurrentModal]); + const hide = useCallback(() => setCurrentModal(null), [setCurrentModal]); + return { + id, + isShown: currentModal === id, + show, + hide, + }; +} + +export function ModalCard(props: { children?: ReactNode }) { + return ( +
    +
    + {props.children} +
    +
    + ); +} + +export function Modal(props: { id: string; children?: ReactNode }) { + const modal = useModal(props.id); + + return ( + + + + +
    + {props.children} +
    +
    + ); +} diff --git a/src/components/overlays/OverlayAnchor.tsx b/src/components/overlays/OverlayAnchor.tsx new file mode 100644 index 00000000..4939ab1d --- /dev/null +++ b/src/components/overlays/OverlayAnchor.tsx @@ -0,0 +1,20 @@ +import classNames from "classnames"; +import { ReactNode } from "react"; + +interface Props { + id: string; + children?: ReactNode; + className?: string; +} + +export function OverlayAnchor(props: Props) { + return ( +
    +
    + {props.children} +
    + ); +} diff --git a/src/components/overlays/OverlayDisplay.tsx b/src/components/overlays/OverlayDisplay.tsx new file mode 100644 index 00000000..048ec0e7 --- /dev/null +++ b/src/components/overlays/OverlayDisplay.tsx @@ -0,0 +1,141 @@ +import classNames from "classnames"; +import FocusTrap from "focus-trap-react"; +import { ReactNode, useCallback, useEffect, useRef, useState } from "react"; +import { createPortal } from "react-dom"; +import { useTranslation } from "react-i18next"; + +import { Transition } from "@/components/utils/Transition"; +import { + useInternalOverlayRouter, + useRouterAnchorUpdate, +} from "@/hooks/useOverlayRouter"; +import { TurnstileProvider } from "@/stores/turnstile"; + +export interface OverlayProps { + id: string; + children?: ReactNode; + darken?: boolean; +} + +function TurnstileInteractive() { + const { t } = useTranslation(); + const [show, setShow] = useState(false); + + // this may not rerender with different dom structure, must be exactly the same always + return ( +
    +
    +
    +

    + {t("player.turnstile.title")} +

    +

    {t("player.turnstile.description")}

    +
    + setShow(shouldShow)} + /> +
    +
    + ); +} + +export function OverlayDisplay(props: { children: ReactNode }) { + const router = useInternalOverlayRouter("hello world :)"); + const refRouter = useRef(router); + + // close router on first mount, we dont want persist routes for overlays + useEffect(() => { + const r = refRouter.current; + r.close(); + return () => { + r.close(); + }; + }, []); + return ( +
    + + {props.children} +
    + ); +} + +export function OverlayPortal(props: { + children?: ReactNode; + darken?: boolean; + show?: boolean; + close?: () => void; +}) { + const [portalElement, setPortalElement] = useState(null); + const ref = useRef(null); + const close = props.close; + + useEffect(() => { + const element = ref.current?.closest(".popout-location"); + setPortalElement(element ?? document.body); + }, []); + + return ( +
    + {portalElement + ? createPortal( + + +
    + +
    + + + {/* a tabable index that does nothing - used so focus trap doesn't error when nothing is rendered yet */} +
    + {props.children} + +
    + +
    , + portalElement, + ) + : null} +
    + ); +} + +export function Overlay(props: OverlayProps) { + const router = useInternalOverlayRouter(props.id); + const realClose = router.close; + + // listen for anchor updates + useRouterAnchorUpdate(props.id); + + const close = useCallback(() => { + realClose(); + }, [realClose]); + + return ( + + {props.children} + + ); +} diff --git a/src/components/overlays/OverlayPage.tsx b/src/components/overlays/OverlayPage.tsx new file mode 100644 index 00000000..f15ebaa1 --- /dev/null +++ b/src/components/overlays/OverlayPage.tsx @@ -0,0 +1,60 @@ +import classNames from "classnames"; +import { ReactNode, useEffect, useMemo } from "react"; + +import { + Transition, + TransitionAnimations, +} from "@/components/utils/Transition"; +import { useIsMobile } from "@/hooks/useIsMobile"; +import { useInternalOverlayRouter } from "@/hooks/useOverlayRouter"; +import { useOverlayStore } from "@/stores/overlay/store"; + +interface Props { + id: string; + path: string; + children?: ReactNode; + className?: string; + height: number; + width: number; +} + +export function OverlayPage(props: Props) { + const router = useInternalOverlayRouter(props.id); + const backwards = router.showBackwardsTransition(props.path); + const show = router.isCurrentPage(props.path); + const registerRoute = useOverlayStore((s) => s.registerRoute); + const path = useMemo(() => router.makePath(props.path), [props.path, router]); + const { isMobile } = useIsMobile(); + + useEffect(() => { + registerRoute({ + id: path, + width: props.width, + height: props.height, + }); + }, [props.height, props.width, path, registerRoute]); + + const width = !isMobile ? `${props.width}px` : "100%"; + let animation: TransitionAnimations = "none"; + if (backwards === "yes" || backwards === "no") + animation = backwards === "yes" ? "slide-full-left" : "slide-full-right"; + + return ( + +
    + {props.children} +
    +
    + ); +} diff --git a/src/components/overlays/OverlayRouter.tsx b/src/components/overlays/OverlayRouter.tsx new file mode 100644 index 00000000..dc36926d --- /dev/null +++ b/src/components/overlays/OverlayRouter.tsx @@ -0,0 +1,101 @@ +import { a, easings, useSpring } from "@react-spring/web"; +import { ReactNode, useEffect, useMemo, useRef } from "react"; + +import { OverlayAnchorPosition } from "@/components/overlays/positions/OverlayAnchorPosition"; +import { OverlayMobilePosition } from "@/components/overlays/positions/OverlayMobilePosition"; +import { Flare } from "@/components/utils/Flare"; +import { useIsMobile } from "@/hooks/useIsMobile"; +import { useInternalOverlayRouter } from "@/hooks/useOverlayRouter"; +import { useOverlayStore } from "@/stores/overlay/store"; + +interface OverlayRouterProps { + children?: ReactNode; + id: string; +} + +function RouterBase(props: { id: string; children: ReactNode }) { + const ref = useRef(null); + const { isMobile } = useIsMobile(); + + const routes = useOverlayStore((s) => s.routes); + const router = useInternalOverlayRouter(props.id); + const routeMeta = useMemo( + () => routes[router.currentRoute ?? ""], + [routes, router], + ); + + const [dimensions, api] = useSpring( + () => ({ + from: { + height: `${routeMeta?.height ?? 0}px`, + width: isMobile ? "100%" : `${routeMeta?.width ?? 0}px`, + }, + config: { + easing: easings.linear, + }, + }), + [], + ); + + const currentState = useRef(null); + useEffect(() => { + const data = { + height: routeMeta?.height, + width: routeMeta?.width, + isMobile, + }; + const dataStr = JSON.stringify(data); + if (dataStr !== currentState.current) { + const oldData = currentState.current + ? JSON.parse(currentState.current) + : null; + currentState.current = dataStr; + if (data.isMobile) { + api.set({ + width: "100%", + }); + api.start({ + height: `${routeMeta?.height ?? 0}px`, + }); + } else if (oldData?.height === undefined && data.height !== undefined) { + api.set({ + height: `${routeMeta?.height ?? 0}px`, + width: `${routeMeta?.width ?? 0}px`, + }); + } else { + api.start({ + height: `${routeMeta?.height ?? 0}px`, + width: `${routeMeta?.width ?? 0}px`, + }); + } + } + }, [routeMeta?.height, routeMeta?.width, isMobile, api]); + + return ( + + + + + {props.children} + + + + ); +} + +export function OverlayRouter(props: OverlayRouterProps) { + const { isMobile } = useIsMobile(); + const content = {props.children}; + + if (isMobile) return {content}; + return {content}; +} diff --git a/src/components/overlays/positions/OverlayAnchorPosition.tsx b/src/components/overlays/positions/OverlayAnchorPosition.tsx new file mode 100644 index 00000000..f4120d94 --- /dev/null +++ b/src/components/overlays/positions/OverlayAnchorPosition.tsx @@ -0,0 +1,74 @@ +import classNames from "classnames"; +import { ReactNode, useCallback, useEffect, useRef, useState } from "react"; + +import { useOverlayStore } from "@/stores/overlay/store"; + +interface AnchorPositionProps { + children?: ReactNode; + className?: string; +} + +function useCalculatePositions() { + const anchorPoint = useOverlayStore((s) => s.anchorPoint); + const ref = useRef(null); + const [left, setLeft] = useState(0); + const [top, setTop] = useState(0); + const [cardRect, setCardRect] = useState(null); + + const calculateAndSetCoords = useCallback( + (anchor: typeof anchorPoint, card: DOMRect) => { + if (!anchor) return; + const buttonCenter = anchor.x + anchor.w / 2; + const bottomReal = window.innerHeight - (anchor.y + anchor.h); + + setTop(window.innerHeight - bottomReal - anchor.h - card.height - 30); + setLeft( + Math.min( + buttonCenter - card.width / 2, + window.innerWidth - card.width - 30, + ), + ); + }, + [], + ); + + useEffect(() => { + if (!anchorPoint || !cardRect) return; + calculateAndSetCoords(anchorPoint, cardRect); + }, [anchorPoint, calculateAndSetCoords, cardRect]); + + useEffect(() => { + if (!ref.current) return; + function checkBox() { + const divRect = ref.current?.getBoundingClientRect(); + setCardRect(divRect ?? null); + } + checkBox(); + const observer = new ResizeObserver(checkBox); + observer.observe(ref.current); + return () => { + observer.disconnect(); + }; + }, []); + + return [ref, left, top] as const; +} + +export function OverlayAnchorPosition(props: AnchorPositionProps) { + const [ref, left, top] = useCalculatePositions(); + + return ( +
    *]:pointer-events-auto z-10 flex dir-neutral:items-start rtl:justify-start ltr:justify-end dir-neutral:origin-top-left touch-none", + props.className, + ])} + > + {props.children} +
    + ); +} diff --git a/src/components/overlays/positions/OverlayMobilePosition.tsx b/src/components/overlays/positions/OverlayMobilePosition.tsx new file mode 100644 index 00000000..53b21000 --- /dev/null +++ b/src/components/overlays/positions/OverlayMobilePosition.tsx @@ -0,0 +1,37 @@ +import classNames from "classnames"; +import { ReactNode } from "react"; +import { useTranslation } from "react-i18next"; + +import { useInternalOverlayRouter } from "@/hooks/useOverlayRouter"; + +interface MobilePositionProps { + children?: ReactNode; + className?: string; +} + +export function OverlayMobilePosition(props: MobilePositionProps) { + const router = useInternalOverlayRouter("hello world :)"); + const { t } = useTranslation(); + + return ( +
    + {props.children} + + {/* Close button */} + + {/* Gradient to hide the progress */} +
    +
    + ); +} diff --git a/src/components/player/Player.tsx b/src/components/player/Player.tsx new file mode 100644 index 00000000..df8e807a --- /dev/null +++ b/src/components/player/Player.tsx @@ -0,0 +1,11 @@ +export * from "./atoms"; +export * from "./base/Container"; +export * from "./base/TopControls"; +export * from "./base/CenterControls"; +export * from "./base/BottomControls"; +export * from "./base/BlackOverlay"; +export * from "./base/BackLink"; +export * from "./base/LeftSideControls"; +export * from "./base/CenterMobileControls"; +export * from "./base/SubtitleView"; +export * from "./internals/BookmarkButton"; diff --git a/src/components/player/README.md b/src/components/player/README.md new file mode 100644 index 00000000..3e3bc0c6 --- /dev/null +++ b/src/components/player/README.md @@ -0,0 +1,31 @@ +# Video player component + +Video player is quite a complex component, so here is a rundown of all the parts + +# Composable parts +These parts can be used to build any shape of a video player. + - `/atoms`- any ui element that controls the player. (Seekbar, Pause button, quality selection, etc) + - `/base` - base components that are used to build a player. Like the main container + +# internal parts +These parts are internally used, they aren't exported. Do not use them outside of player internals. + +### `/display` +The display interface, abstraction on how to actually play the content (e.g Video element, chrome casting, etc) + - It must be completely separate from any react code + - It must not interact with state, pass async data back with events + +### `/internals` +Internal components that are always rendered on every player. + - Only components that are always present on the player instance, they must never unmount + +### `/utils` +miscellaneous logic, put anything that is unique to the video player internals. + +### `/hooks` +Hooks only used for video player. + - only exception is usePlayer, as its used outside of the player to control the player + +### `~/src/stores/player` +State for the video player. + - Only parts related to the video player may utilize the state diff --git a/src/components/player/atoms/Airplay.tsx b/src/components/player/atoms/Airplay.tsx new file mode 100644 index 00000000..0d517fc8 --- /dev/null +++ b/src/components/player/atoms/Airplay.tsx @@ -0,0 +1,17 @@ +import { Icons } from "@/components/Icon"; +import { VideoPlayerButton } from "@/components/player/internals/Button"; +import { usePlayerStore } from "@/stores/player/store"; + +export function Airplay() { + const canAirplay = usePlayerStore((s) => s.interface.canAirplay); + const display = usePlayerStore((s) => s.display); + + if (!canAirplay) return null; + + return ( + display?.startAirplay()} + icon={Icons.AIRPLAY} + /> + ); +} diff --git a/src/components/player/atoms/AutoPlayStart.tsx b/src/components/player/atoms/AutoPlayStart.tsx new file mode 100644 index 00000000..7ae99e88 --- /dev/null +++ b/src/components/player/atoms/AutoPlayStart.tsx @@ -0,0 +1,34 @@ +import { useCallback } from "react"; + +import { Icon, Icons } from "@/components/Icon"; +import { playerStatus } from "@/stores/player/slices/source"; +import { usePlayerStore } from "@/stores/player/store"; + +export function AutoPlayStart() { + const display = usePlayerStore((s) => s.display); + const isPlaying = usePlayerStore((s) => s.mediaPlaying.isPlaying); + const isLoading = usePlayerStore((s) => s.mediaPlaying.isLoading); + const hasPlayedOnce = usePlayerStore((s) => s.mediaPlaying.hasPlayedOnce); + const status = usePlayerStore((s) => s.status); + + const handleClick = useCallback(() => { + display?.play(); + }, [display]); + + if (hasPlayedOnce) return null; + if (isPlaying) return null; + if (isLoading) return null; + if (status !== playerStatus.PLAYING) return null; + + return ( +
    + +
    + ); +} diff --git a/src/components/player/atoms/CastingNotification.tsx b/src/components/player/atoms/CastingNotification.tsx new file mode 100644 index 00000000..9c4e423b --- /dev/null +++ b/src/components/player/atoms/CastingNotification.tsx @@ -0,0 +1,22 @@ +import { useTranslation } from "react-i18next"; + +import { Icon, Icons } from "@/components/Icon"; +import { usePlayerStore } from "@/stores/player/store"; + +export function CastingNotification() { + const { t } = useTranslation(); + const isLoading = usePlayerStore((s) => s.mediaPlaying.isLoading); + const display = usePlayerStore((s) => s.display); + const isCasting = display?.getType() === "casting"; + + if (isLoading || !isCasting) return null; + + return ( +
    +
    + +
    +

    {t("player.casting.enabled")}

    +
    + ); +} diff --git a/src/components/player/atoms/Chromecast.tsx b/src/components/player/atoms/Chromecast.tsx new file mode 100644 index 00000000..a3d278e8 --- /dev/null +++ b/src/components/player/atoms/Chromecast.tsx @@ -0,0 +1,56 @@ +import { useCallback, useEffect, useRef, useState } from "react"; + +import { Icons } from "@/components/Icon"; +import { VideoPlayerButton } from "@/components/player/internals/Button"; +import { usePlayerStore } from "@/stores/player/store"; + +export interface ChromecastProps { + className?: string; +} + +export function Chromecast(props: ChromecastProps) { + const [hidden, setHidden] = useState(false); + const isCasting = usePlayerStore((s) => s.interface.isCasting); + const ref = useRef(null); + + const setButtonVisibility = useCallback( + (tag: HTMLElement) => { + const isVisible = (tag.getAttribute("style") ?? "").includes("inline"); + setHidden(!isVisible); + }, + [setHidden], + ); + + useEffect(() => { + const tag = ref.current?.querySelector("google-cast-launcher"); + if (!tag) return; + + const observer = new MutationObserver(() => { + setButtonVisibility(tag); + }); + + observer.observe(tag, { attributes: true, attributeFilter: ["style"] }); + setButtonVisibility(tag); + + return () => { + observer.disconnect(); + }; + }, [setButtonVisibility]); + + return ( +