From 9b108b813f4ea42463045385c7ae6bd90f1fc457 Mon Sep 17 00:00:00 2001 From: "github-action[bot]" Date: Mon, 22 Dec 2025 19:42:56 +0100 Subject: [PATCH] Update On Mon Dec 22 19:42:55 CET 2025 --- .github/update.log | 1 + clash-meta/go.mod | 2 +- clash-meta/go.sum | 4 +- .../frontend/interface/package.json | 4 +- clash-nyanpasu/frontend/nyanpasu/package.json | 6 +- .../providers/language-provider.tsx | 11 +- clash-nyanpasu/frontend/nyanpasu/src/main.tsx | 2 + .../frontend/nyanpasu/src/utils/language.ts | 32 + .../frontend/nyanpasu/vite.config.ts | 1 + clash-nyanpasu/frontend/ui/package.json | 2 +- clash-nyanpasu/manifest/version.json | 6 +- clash-nyanpasu/package.json | 2 +- clash-nyanpasu/pnpm-lock.yaml | 93 +- lede/include/kernel-6.12 | 4 +- ...-for-all-the-downstream-rpi-sound-ca.patch | 2 +- ...hci_fixup_endpoint-for-interval-adju.patch | 2 +- ...ce-quirks-for-Freeway-Airmouse-T3-an.patch | 4 +- ...CS_HIGH-if-GPIO-descriptors-are-used.patch | 4 +- ...5-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch | 6 +- .../950-0344-sdhci-Add-SD-Express-hook.patch | 2 +- ...wc3-Set-DMA-and-coherent-masks-early.patch | 16 +- ...f-dwcmshc-define-sdio-timeout-clocks.patch | 18 +- ...ok-up-preferred-fbdev-node-number-fr.patch | 4 +- ...0-Add-support-for-V4L2_CID_LINK_FREQ.patch | 22 +- ...-add-FS-LS-bus-instance-parkmode-dis.patch | 4 +- ...d-support-for-setting-NAK-enhancemen.patch | 4 +- ...of-dwcmshc-define-sdio-timeout-clock.patch | 2 +- ...-to-Intel-scheme-for-calculating-U1-.patch | 4 +- ...add-uImage.FIT-subimage-block-driver.patch | 2 +- mihomo/go.mod | 2 +- mihomo/go.sum | 4 +- openwrt-packages/luci-app-ddnsto/Makefile | 2 +- .../luasrc/controller/ddnsto.lua | 1097 ++++++++++------- .../luasrc/view/ddnsto/main.htm | 30 +- .../root/www/luci-static/ddnsto/index.js | 114 +- .../root/www/luci-static/ddnsto/style.css | 1 - openwrt-packages/quickstart/Makefile | 5 +- shadowsocks-rust/Cargo.lock | 4 +- sing-box/cmd/internal/build_libbox/main.go | 90 +- .../common/settings/wifi_linux_connman.go | 2 + sing-box/common/settings/wifi_linux_iwd.go | 2 + sing-box/common/settings/wifi_linux_nm.go | 2 + .../configuration/dns/server/legacy.zh.md | 2 +- .../configuration/inbound/shadowsocks.zh.md | 4 +- .../docs/configuration/outbound/tuic.zh.md | 2 +- sing-box/docs/configuration/route/index.zh.md | 2 +- sing-box/docs/configuration/route/rule.md | 12 +- sing-box/docs/configuration/route/rule.zh.md | 12 +- sing-box/docs/configuration/shared/dial.md | 4 +- sing-box/docs/configuration/shared/dial.zh.md | 4 +- sing-box/docs/configuration/shared/listen.md | 2 +- .../docs/configuration/shared/listen.zh.md | 4 +- sing-box/docs/configuration/shared/tls.zh.md | 2 +- .../docs/configuration/shared/wifi-state.md | 41 + .../configuration/shared/wifi-state.zh.md | 41 + sing-box/docs/deprecated.zh.md | 4 +- sing-box/docs/migration.zh.md | 4 +- sing-box/go.mod | 6 +- sing-box/go.sum | 8 +- sing-box/mkdocs.yml | 2 + sing-box/protocol/dns/handle.go | 3 +- sing-box/protocol/naive/quic/inbound_init.go | 17 +- sing-box/protocol/tailscale/endpoint.go | 2 + sing-box/service/ccm/service.go | 6 + sing-box/service/derp/service.go | 6 + sing-box/service/ocm/service.go | 6 + sing-box/test/go.mod | 116 +- sing-box/test/go.sum | 250 ++-- sing-box/transport/v2rayquic/server.go | 2 +- sing-box/transport/v2rayquic/stream.go | 6 +- .../htdocs/luci-static/resources/fchomo.js | 16 +- .../resources/view/fchomo/hosts.js | 2 +- .../luci-static/resources/view/fchomo/node.js | 7 + small/luci-app-fchomo/po/templates/fchomo.pot | 619 +++++----- small/luci-app-fchomo/po/zh_Hans/fchomo.po | 619 +++++----- small/luci-app-fchomo/po/zh_Hant/fchomo.po | 619 +++++----- .../root/usr/share/fchomo/generate_client.uc | 1 + small/luci-app-nikki/Makefile | 2 +- .../luci-static/resources/view/nikki/app.js | 2 - .../luci-static/resources/view/nikki/mixin.js | 16 + .../luci-static/resources/view/nikki/proxy.js | 18 + small/luci-app-nikki/po/templates/nikki.pot | 313 +++-- small/luci-app-nikki/po/zh_Hans/nikki.po | 313 +++-- small/luci-app-nikki/po/zh_Hant/nikki.po | 320 ++--- small/mihomo/Makefile | 4 +- small/nikki/Makefile | 6 +- small/nikki/files/nikki.init | 6 +- small/nikki/files/ucode/hijack.ut | 25 + small/nikki/files/ucode/mixin.uc | 3 + small/v2ray-geodata/Makefile | 6 +- v2rayn/v2rayN/Directory.Build.props | 2 +- .../v2rayN.Desktop/Views/MainWindow.axaml | 2 +- v2rayn/v2rayN/v2rayN/Views/MainWindow.xaml | 2 +- xray-core/go.mod | 2 +- xray-core/go.sum | 4 +- 95 files changed, 2934 insertions(+), 2186 deletions(-) delete mode 100644 openwrt-packages/luci-app-ddnsto/root/www/luci-static/ddnsto/style.css create mode 100644 sing-box/docs/configuration/shared/wifi-state.md create mode 100644 sing-box/docs/configuration/shared/wifi-state.zh.md diff --git a/.github/update.log b/.github/update.log index 1d2679c241..67514ee2ac 100644 --- a/.github/update.log +++ b/.github/update.log @@ -1219,3 +1219,4 @@ Update On Thu Dec 18 19:42:36 CET 2025 Update On Fri Dec 19 19:41:31 CET 2025 Update On Sat Dec 20 19:35:51 CET 2025 Update On Sun Dec 21 19:39:06 CET 2025 +Update On Mon Dec 22 19:42:47 CET 2025 diff --git a/clash-meta/go.mod b/clash-meta/go.mod index e15afab758..bb55812230 100644 --- a/clash-meta/go.mod +++ b/clash-meta/go.mod @@ -25,7 +25,7 @@ require ( github.com/metacubex/http v0.1.0 github.com/metacubex/kcp-go v0.0.0-20251111012849-7455698490e9 github.com/metacubex/mlkem v0.1.0 - github.com/metacubex/quic-go v0.57.1-0.20251217071004-e89f497a2e72 + github.com/metacubex/quic-go v0.58.1-0.20251222092318-72a81ab195ec github.com/metacubex/randv2 v0.2.0 github.com/metacubex/restls-client-go v0.1.7 github.com/metacubex/sing v0.5.6 diff --git a/clash-meta/go.sum b/clash-meta/go.sum index 2a01c51737..4756c83bd4 100644 --- a/clash-meta/go.sum +++ b/clash-meta/go.sum @@ -114,8 +114,8 @@ github.com/metacubex/nftables v0.0.0-20250503052935-30a69ab87793 h1:1Qpuy+sU3Dmy github.com/metacubex/nftables v0.0.0-20250503052935-30a69ab87793/go.mod h1:RjRNb4G52yAgfR+Oe/kp9G4PJJ97Fnj89eY1BFO3YyA= github.com/metacubex/qpack v0.6.0 h1:YqClGIMOpiRYLjV1qOs483Od08MdPgRnHjt90FuaAKw= github.com/metacubex/qpack v0.6.0/go.mod h1:lKGSi7Xk94IMvHGOmxS9eIei3bvIqpOAImEBsaOwTkA= -github.com/metacubex/quic-go v0.57.1-0.20251217071004-e89f497a2e72 h1:kNlYHZ75itJwkerDiySpixX+dKsv/K0TYQsKvuxogNM= -github.com/metacubex/quic-go v0.57.1-0.20251217071004-e89f497a2e72/go.mod h1:N071X2oW2+kIhLlHW3mfcD2QP+zWu2bEs1EEAm66bvI= +github.com/metacubex/quic-go v0.58.1-0.20251222092318-72a81ab195ec h1:5ePGO2Xht06fpwjNIzfY5XS+82xwDHHx4xGbqgLbxjA= +github.com/metacubex/quic-go v0.58.1-0.20251222092318-72a81ab195ec/go.mod h1:oNzMrmylS897M3zSMuapIdwSwfq6F2qW01Z3NhVRJhk= github.com/metacubex/randv2 v0.2.0 h1:uP38uBvV2SxYfLj53kuvAjbND4RUDfFJjwr4UigMiLs= github.com/metacubex/randv2 v0.2.0/go.mod h1:kFi2SzrQ5WuneuoLLCMkABtiBu6VRrMrWFqSPyj2cxY= github.com/metacubex/restls-client-go v0.1.7 h1:eCwiXCTQb5WJu9IlgYvDBA1OgrINv58dEe7hcN5H15k= diff --git a/clash-nyanpasu/frontend/interface/package.json b/clash-nyanpasu/frontend/interface/package.json index ca0dde4efc..d56065cc20 100644 --- a/clash-nyanpasu/frontend/interface/package.json +++ b/clash-nyanpasu/frontend/interface/package.json @@ -11,11 +11,11 @@ "build": "tsc" }, "dependencies": { - "@tanstack/react-query": "5.90.11", + "@tanstack/react-query": "5.90.12", "@tauri-apps/api": "2.8.0", "ahooks": "3.9.6", "dayjs": "1.11.19", - "lodash-es": "4.17.21", + "lodash-es": "4.17.22", "ofetch": "1.5.1", "react": "19.2.0", "swr": "2.3.6" diff --git a/clash-nyanpasu/frontend/nyanpasu/package.json b/clash-nyanpasu/frontend/nyanpasu/package.json index bf6a5f1b6f..c859e0516d 100644 --- a/clash-nyanpasu/frontend/nyanpasu/package.json +++ b/clash-nyanpasu/frontend/nyanpasu/package.json @@ -38,12 +38,12 @@ "@uidotdev/usehooks": "2.4.1", "@uiw/react-color": "2.9.2", "ahooks": "3.9.6", - "allotment": "1.20.4", + "allotment": "1.20.5", "class-variance-authority": "0.7.1", "country-code-emoji": "2.3.0", "country-emoji": "1.5.6", "dayjs": "1.11.19", - "framer-motion": "12.23.24", + "framer-motion": "12.23.26", "i18next": "25.6.3", "jotai": "2.15.1", "json-schema": "0.4.0", @@ -71,7 +71,7 @@ "@emotion/react": "11.14.0", "@iconify/json": "2.2.420", "@monaco-editor/react": "4.7.0", - "@tanstack/react-query": "5.90.11", + "@tanstack/react-query": "5.90.12", "@tanstack/react-router": "1.134.15", "@tanstack/react-router-devtools": "1.134.15", "@tanstack/router-plugin": "1.134.15", diff --git a/clash-nyanpasu/frontend/nyanpasu/src/components/providers/language-provider.tsx b/clash-nyanpasu/frontend/nyanpasu/src/components/providers/language-provider.tsx index 21233dc992..d295fec724 100644 --- a/clash-nyanpasu/frontend/nyanpasu/src/components/providers/language-provider.tsx +++ b/clash-nyanpasu/frontend/nyanpasu/src/components/providers/language-provider.tsx @@ -1,4 +1,4 @@ -import { createContext, PropsWithChildren, useContext, useEffect } from 'react' +import { createContext, PropsWithChildren, useContext } from 'react' import { useLockFn } from '@/hooks/use-lock-fn' import { getLocale, Locale, setLocale } from '@/paraglide/runtime' import { useSetting } from '@nyanpasu/interface' @@ -23,18 +23,13 @@ export const LanguageProvider = ({ children }: PropsWithChildren) => { const setLanguage = useLockFn(async (value: Locale) => { await language.upsert(value) + setLocale(value) }) - useEffect(() => { - if (language.value && language.value !== getLocale()) { - setLocale(language.value as Locale) - } - }, [language.value]) - return ( diff --git a/clash-nyanpasu/frontend/nyanpasu/src/main.tsx b/clash-nyanpasu/frontend/nyanpasu/src/main.tsx index da7c42f1da..5d617ecad7 100644 --- a/clash-nyanpasu/frontend/nyanpasu/src/main.tsx +++ b/clash-nyanpasu/frontend/nyanpasu/src/main.tsx @@ -11,6 +11,8 @@ import './assets/styles/index.scss' import './assets/styles/tailwind.css' import { routeTree } from './route-tree.gen' import './services/i18n' +// manually import language utils, inject paraglide custom strategy +import '@/utils/language' if (!window.ResizeObserver) { window.ResizeObserver = ResizeObserver diff --git a/clash-nyanpasu/frontend/nyanpasu/src/utils/language.ts b/clash-nyanpasu/frontend/nyanpasu/src/utils/language.ts index 6f61a52e1d..793f21efe3 100644 --- a/clash-nyanpasu/frontend/nyanpasu/src/utils/language.ts +++ b/clash-nyanpasu/frontend/nyanpasu/src/utils/language.ts @@ -1,3 +1,5 @@ +import { defineCustomClientStrategy, locales } from '@/paraglide/runtime' + export const languageOptions = { en: 'English', ru: 'Русский', @@ -34,3 +36,33 @@ export const languageQuirks: { }, }, } + +export type Language = (typeof locales)[number] + +export const LANGUAGE_STORAGE_KEY = 'paraglide-language-cache' + +export const DEFAULT_LANGUAGE = 'en' + +// encode the language storage key to avoid special characters +const CACHED_LANGUAGE_STORAGE_KEY = btoa(LANGUAGE_STORAGE_KEY) + +export const setCachedLanguage = (locale: Language) => { + localStorage.setItem(CACHED_LANGUAGE_STORAGE_KEY, locale) +} + +export const getCachedLanguage = () => { + const value = localStorage.getItem(CACHED_LANGUAGE_STORAGE_KEY) + + return value && locales.includes(value as Language) + ? (value as Language) + : DEFAULT_LANGUAGE +} + +defineCustomClientStrategy('custom-extension', { + getLocale: () => { + return getCachedLanguage() + }, + setLocale: (locale) => { + setCachedLanguage(locale as Language) + }, +}) diff --git a/clash-nyanpasu/frontend/nyanpasu/vite.config.ts b/clash-nyanpasu/frontend/nyanpasu/vite.config.ts index 3034f0705d..03b92f713d 100644 --- a/clash-nyanpasu/frontend/nyanpasu/vite.config.ts +++ b/clash-nyanpasu/frontend/nyanpasu/vite.config.ts @@ -115,6 +115,7 @@ export default defineConfig(({ command, mode }) => { paraglideVitePlugin({ project: './project.inlang', outdir: './src/paraglide', + strategy: ['custom-extension'], }), ], resolve: { diff --git a/clash-nyanpasu/frontend/ui/package.json b/clash-nyanpasu/frontend/ui/package.json index 9942cafad2..29ff6a5200 100644 --- a/clash-nyanpasu/frontend/ui/package.json +++ b/clash-nyanpasu/frontend/ui/package.json @@ -23,7 +23,7 @@ "@vitejs/plugin-react": "5.1.2", "ahooks": "3.9.6", "d3": "7.9.0", - "framer-motion": "12.23.24", + "framer-motion": "12.23.26", "react": "19.2.0", "react-dom": "19.2.0", "react-error-boundary": "6.0.0", diff --git a/clash-nyanpasu/manifest/version.json b/clash-nyanpasu/manifest/version.json index 8809e89039..9bff95b84d 100644 --- a/clash-nyanpasu/manifest/version.json +++ b/clash-nyanpasu/manifest/version.json @@ -1,8 +1,8 @@ { "manifest_version": 1, "latest": { - "mihomo": "v1.19.17", - "mihomo_alpha": "alpha-9112115", + "mihomo": "v1.19.18", + "mihomo_alpha": "alpha-5585304", "clash_rs": "v0.9.3", "clash_premium": "2023-09-05-gdcc8d87", "clash_rs_alpha": "0.9.3-alpha+sha.a6538ac" @@ -69,5 +69,5 @@ "linux-armv7hf": "clash-armv7-unknown-linux-gnueabihf" } }, - "updated_at": "2025-12-20T22:21:16.275Z" + "updated_at": "2025-12-21T22:21:28.170Z" } diff --git a/clash-nyanpasu/package.json b/clash-nyanpasu/package.json index 7ce0a1ec86..2a4020277e 100644 --- a/clash-nyanpasu/package.json +++ b/clash-nyanpasu/package.json @@ -55,7 +55,7 @@ "dependencies": { "@prettier/plugin-oxc": "0.1.3", "husky": "9.1.7", - "lodash-es": "4.17.21" + "lodash-es": "4.17.22" }, "devDependencies": { "@commitlint/cli": "20.2.0", diff --git a/clash-nyanpasu/pnpm-lock.yaml b/clash-nyanpasu/pnpm-lock.yaml index f913798930..5c339fa644 100644 --- a/clash-nyanpasu/pnpm-lock.yaml +++ b/clash-nyanpasu/pnpm-lock.yaml @@ -19,8 +19,8 @@ importers: specifier: 9.1.7 version: 9.1.7 lodash-es: - specifier: 4.17.21 - version: 4.17.21 + specifier: 4.17.22 + version: 4.17.22 devDependencies: '@commitlint/cli': specifier: 20.2.0 @@ -176,8 +176,8 @@ importers: frontend/interface: dependencies: '@tanstack/react-query': - specifier: 5.90.11 - version: 5.90.11(react@19.2.0) + specifier: 5.90.12 + version: 5.90.12(react@19.2.0) '@tauri-apps/api': specifier: 2.8.0 version: 2.8.0 @@ -188,8 +188,8 @@ importers: specifier: 1.11.19 version: 1.11.19 lodash-es: - specifier: 4.17.21 - version: 4.17.21 + specifier: 4.17.22 + version: 4.17.22 ofetch: specifier: 1.5.1 version: 1.5.1 @@ -294,8 +294,8 @@ importers: specifier: 3.9.6 version: 3.9.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0) allotment: - specifier: 1.20.4 - version: 1.20.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + specifier: 1.20.5 + version: 1.20.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0) class-variance-authority: specifier: 0.7.1 version: 0.7.1 @@ -309,8 +309,8 @@ importers: specifier: 1.11.19 version: 1.11.19 framer-motion: - specifier: 12.23.24 - version: 12.23.24(@emotion/is-prop-valid@1.3.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + specifier: 12.23.26 + version: 12.23.26(@emotion/is-prop-valid@1.3.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) i18next: specifier: 25.6.3 version: 25.6.3(typescript@5.9.3) @@ -388,8 +388,8 @@ importers: specifier: 4.7.0 version: 4.7.0(monaco-editor@0.54.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@tanstack/react-query': - specifier: 5.90.11 - version: 5.90.11(react@19.2.0) + specifier: 5.90.12 + version: 5.90.12(react@19.2.0) '@tanstack/react-router': specifier: 1.134.15 version: 1.134.15(react-dom@19.2.0(react@19.2.0))(react@19.2.0) @@ -535,8 +535,8 @@ importers: specifier: 7.9.0 version: 7.9.0 framer-motion: - specifier: 12.23.24 - version: 12.23.24(@emotion/is-prop-valid@1.3.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + specifier: 12.23.26 + version: 12.23.26(@emotion/is-prop-valid@1.3.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) react: specifier: 19.2.0 version: 19.2.0 @@ -3501,11 +3501,11 @@ packages: resolution: {integrity: sha512-Wo1iKt2b9OT7d+YGhvEPD3DXvPv2etTusIMhMUoG7fbhmxcXCtIjJDEygy91Y2JFlwGyjqiBPRozme7UD8hoqg==} engines: {node: '>=12'} - '@tanstack/query-core@5.90.11': - resolution: {integrity: sha512-f9z/nXhCgWDF4lHqgIE30jxLe4sYv15QodfdPDKYAk7nAEjNcndy4dHz3ezhdUaR23BpWa4I2EH4/DZ0//Uf8A==} + '@tanstack/query-core@5.90.12': + resolution: {integrity: sha512-T1/8t5DhV/SisWjDnaiU2drl6ySvsHj1bHBCWNXd+/T+Hh1cf6JodyEYMd5sgwm+b/mETT4EV3H+zCVczCU5hg==} - '@tanstack/react-query@5.90.11': - resolution: {integrity: sha512-3uyzz01D1fkTLXuxF3JfoJoHQMU2fxsfJwE+6N5hHy0dVNoZOvwKP8Z2k7k1KDeD54N20apcJnG75TBAStIrBA==} + '@tanstack/react-query@5.90.12': + resolution: {integrity: sha512-graRZspg7EoEaw0a8faiUASCyJrqjKPdqJ9EwuDRUF9mEYJ1YPczI9H+/agJ0mOJkPCJDk0lsz5QTrLZ/jQ2rg==} peerDependencies: react: ^18 || ^19 @@ -4413,8 +4413,8 @@ packages: alien-signals@0.4.14: resolution: {integrity: sha512-itUAVzhczTmP2U5yX67xVpsbbOiquusbWVyA9N+sy6+r6YVbFkahXvNCeEPWEOMhwDYwbVbGHFkVL03N9I5g+Q==} - allotment@1.20.4: - resolution: {integrity: sha512-LMM5Xe5nLePFOLAlW/5k3ARqznYGUyNekV4xJrfDKn1jimW3nlZE6hT/Tu0T8s0VgAkr9s2P7+uM0WvJKn5DAw==} + allotment@1.20.5: + resolution: {integrity: sha512-7i4NT7ieXEyAd5lBrXmE7WHz/e7hRuo97+j+TwrPE85ha6kyFURoc76nom0dWSZ1pTKVEAMJy/+f3/Isfu/41A==} peerDependencies: react: ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -5791,8 +5791,8 @@ packages: fraction.js@5.3.4: resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==} - framer-motion@12.23.24: - resolution: {integrity: sha512-HMi5HRoRCTou+3fb3h9oTLyJGBxHfW+HnNE25tAXOvVx/IvwMHK0cx7IR4a2ZU6sh3IX1Z+4ts32PcYBOqka8w==} + framer-motion@12.23.26: + resolution: {integrity: sha512-cPcIhgR42xBn1Uj+PzOyheMtZ73H927+uWPDVhUMqxy8UHt6Okavb6xIz9J/phFUHUj0OncR6UvMfJTXoc/LKA==} peerDependencies: '@emotion/is-prop-valid': '*' react: ^18.0.0 || ^19.0.0 @@ -6654,8 +6654,8 @@ packages: resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - lodash-es@4.17.21: - resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + lodash-es@4.17.22: + resolution: {integrity: sha512-XEawp1t0gxSi9x01glktRZ5HDy0HXqrM0x5pXQM98EaI0NxO6jVM7omDOxsuEo5UIASAnm2bRp1Jt/e0a2XU8Q==} lodash.camelcase@4.3.0: resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} @@ -6666,10 +6666,6 @@ packages: lodash.debounce@4.0.8: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - lodash.isequal@4.5.0: - resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} - deprecated: This package is deprecated. Use require('node:util').isDeepStrictEqual instead. - lodash.isplainobject@4.0.6: resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} @@ -8610,12 +8606,6 @@ packages: '@types/react': optional: true - use-resize-observer@9.1.0: - resolution: {integrity: sha512-R25VqO9Wb3asSD4eqtcxk8sJalvIOYBqS8MNZlpDSQ4l4xMQxC/J7Id9HoTqPq8FwULIn0PVW+OAqF2dyYbjow==} - peerDependencies: - react: 16.8.0 - 18 - react-dom: 16.8.0 - 18 - use-sidecar@1.1.3: resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} engines: {node: '>=10'} @@ -8636,6 +8626,12 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + usehooks-ts@3.1.1: + resolution: {integrity: sha512-I4diPp9Cq6ieSUH2wu+fDAVQO43xwtulo+fKEidHUwZPnYImbtkTjzIJYcDcJqxgmX31GVqNFURodvcgHcW0pA==} + engines: {node: '>=16.15.0'} + peerDependencies: + react: ^16.8.0 || ^17 || ^18 || ^19 || ^19.0.0-rc + utf-8-validate@5.0.10: resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==} engines: {node: '>=6.14.2'} @@ -12060,11 +12056,11 @@ snapshots: dependencies: remove-accents: 0.5.0 - '@tanstack/query-core@5.90.11': {} + '@tanstack/query-core@5.90.12': {} - '@tanstack/react-query@5.90.11(react@19.2.0)': + '@tanstack/react-query@5.90.12(react@19.2.0)': dependencies: - '@tanstack/query-core': 5.90.11 + '@tanstack/query-core': 5.90.12 react: 19.2.0 '@tanstack/react-router-devtools@1.134.15(@tanstack/react-router@1.134.15(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@tanstack/router-core@1.134.15)(@types/node@24.10.4)(csstype@3.2.3)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass-embedded@1.93.3)(sass@1.93.3)(solid-js@1.9.5)(stylus@0.62.0)(terser@5.36.0)(tiny-invariant@1.3.3)(tsx@4.21.0)(yaml@2.8.1)': @@ -13135,16 +13131,16 @@ snapshots: alien-signals@0.4.14: {} - allotment@1.20.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0): + allotment@1.20.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: classnames: 2.5.1 eventemitter3: 5.0.1 + fast-deep-equal: 3.1.3 lodash.clamp: 4.0.3 lodash.debounce: 4.0.8 - lodash.isequal: 4.5.0 react: 19.2.0 react-dom: 19.2.0(react@19.2.0) - use-resize-observer: 9.1.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + usehooks-ts: 3.1.1(react@19.2.0) ansi-escapes@7.0.0: dependencies: @@ -14803,7 +14799,7 @@ snapshots: fraction.js@5.3.4: {} - framer-motion@12.23.24(@emotion/is-prop-valid@1.3.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0): + framer-motion@12.23.26(@emotion/is-prop-valid@1.3.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: motion-dom: 12.23.23 motion-utils: 12.23.6 @@ -15661,7 +15657,7 @@ snapshots: dependencies: p-locate: 6.0.0 - lodash-es@4.17.21: {} + lodash-es@4.17.22: {} lodash.camelcase@4.3.0: {} @@ -15669,8 +15665,6 @@ snapshots: lodash.debounce@4.0.8: {} - lodash.isequal@4.5.0: {} - lodash.isplainobject@4.0.6: {} lodash.kebabcase@4.1.1: {} @@ -17934,12 +17928,6 @@ snapshots: optionalDependencies: '@types/react': 19.2.7 - use-resize-observer@9.1.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0): - dependencies: - '@juggle/resize-observer': 3.4.0 - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) - use-sidecar@1.1.3(@types/react@19.2.7)(react@19.2.0): dependencies: detect-node-es: 1.1.0 @@ -17956,6 +17944,11 @@ snapshots: dependencies: react: 19.2.0 + usehooks-ts@3.1.1(react@19.2.0): + dependencies: + lodash.debounce: 4.0.8 + react: 19.2.0 + utf-8-validate@5.0.10: dependencies: node-gyp-build: 4.8.1 diff --git a/lede/include/kernel-6.12 b/lede/include/kernel-6.12 index c439fb2246..0a9808b6be 100644 --- a/lede/include/kernel-6.12 +++ b/lede/include/kernel-6.12 @@ -1,2 +1,2 @@ -LINUX_VERSION-6.12 = .61 -LINUX_KERNEL_HASH-6.12.61 = 1a69745105528676f12f29dc2494945d96cb23666dcc5223794abc22415f1735 +LINUX_VERSION-6.12 = .62 +LINUX_KERNEL_HASH-6.12.62 = 13e2c685ac8fab5dd992dd105732554dae514aef350c2a8c7418e7b74eb62c13 diff --git a/lede/target/linux/bcm27xx/patches-6.12/950-0073-ASoC-Add-support-for-all-the-downstream-rpi-sound-ca.patch b/lede/target/linux/bcm27xx/patches-6.12/950-0073-ASoC-Add-support-for-all-the-downstream-rpi-sound-ca.patch index c6ce4dd6db..61b880bb43 100644 --- a/lede/target/linux/bcm27xx/patches-6.12/950-0073-ASoC-Add-support-for-all-the-downstream-rpi-sound-ca.patch +++ b/lede/target/linux/bcm27xx/patches-6.12/950-0073-ASoC-Add-support-for-all-the-downstream-rpi-sound-ca.patch @@ -18626,7 +18626,7 @@ Signed-off-by: j-schambacher * For devices with more than one control interface, we assume the --- a/sound/usb/quirks.c +++ b/sound/usb/quirks.c -@@ -2378,6 +2378,8 @@ static const struct usb_audio_quirk_flag +@@ -2385,6 +2385,8 @@ static const struct usb_audio_quirk_flag QUIRK_FLAG_ALIGN_TRANSFER), DEVICE_FLG(0x534d, 0x2109, /* MacroSilicon MS2109 */ QUIRK_FLAG_ALIGN_TRANSFER), diff --git a/lede/target/linux/bcm27xx/patches-6.12/950-0125-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch b/lede/target/linux/bcm27xx/patches-6.12/950-0125-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch index 0491be4369..88c67d2ba5 100644 --- a/lede/target/linux/bcm27xx/patches-6.12/950-0125-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch +++ b/lede/target/linux/bcm27xx/patches-6.12/950-0125-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch @@ -124,7 +124,7 @@ Signed-off-by: Jonathan Bell * non-error returns are a promise to giveback() the urb later * we drop ownership so next owner (or urb unlink) can get it */ -@@ -5386,6 +5489,7 @@ static const struct hc_driver xhci_hc_dr +@@ -5387,6 +5490,7 @@ static const struct hc_driver xhci_hc_dr .endpoint_reset = xhci_endpoint_reset, .check_bandwidth = xhci_check_bandwidth, .reset_bandwidth = xhci_reset_bandwidth, diff --git a/lede/target/linux/bcm27xx/patches-6.12/950-0132-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch b/lede/target/linux/bcm27xx/patches-6.12/950-0132-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch index 879eb3c898..1b1b8d7746 100644 --- a/lede/target/linux/bcm27xx/patches-6.12/950-0132-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch +++ b/lede/target/linux/bcm27xx/patches-6.12/950-0132-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch @@ -32,7 +32,7 @@ Signed-off-by: Jonathan Bell #define USB_VENDOR_ID_BELKIN 0x050d #define USB_DEVICE_ID_FLIP_KVM 0x3201 -@@ -1466,6 +1469,9 @@ +@@ -1471,6 +1474,9 @@ #define USB_VENDOR_ID_XIAOMI 0x2717 #define USB_DEVICE_ID_MI_SILENT_MOUSE 0x5014 @@ -52,7 +52,7 @@ Signed-off-by: Jonathan Bell { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_MULTI_TOUCH), HID_QUIRK_MULTI_INPUT }, { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE), HID_QUIRK_ALWAYS_POLL }, { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE2), HID_QUIRK_ALWAYS_POLL }, -@@ -213,6 +214,7 @@ static const struct hid_device_id hid_qu +@@ -215,6 +216,7 @@ static const struct hid_device_id hid_qu { HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_QUAD_USB_JOYPAD), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT }, { HID_USB_DEVICE(USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_XIN_MO_DUAL_ARCADE), HID_QUIRK_MULTI_INPUT }, { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_GROUP_AUDIO), HID_QUIRK_NOGET }, diff --git a/lede/target/linux/bcm27xx/patches-6.12/950-0172-spi-Force-CS_HIGH-if-GPIO-descriptors-are-used.patch b/lede/target/linux/bcm27xx/patches-6.12/950-0172-spi-Force-CS_HIGH-if-GPIO-descriptors-are-used.patch index cd0aa3422c..df416916c8 100644 --- a/lede/target/linux/bcm27xx/patches-6.12/950-0172-spi-Force-CS_HIGH-if-GPIO-descriptors-are-used.patch +++ b/lede/target/linux/bcm27xx/patches-6.12/950-0172-spi-Force-CS_HIGH-if-GPIO-descriptors-are-used.patch @@ -32,7 +32,7 @@ Signed-off-by: Phil Elwell --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c -@@ -3897,6 +3897,7 @@ static int spi_set_cs_timing(struct spi_ +@@ -3907,6 +3907,7 @@ static int spi_set_cs_timing(struct spi_ */ int spi_setup(struct spi_device *spi) { @@ -40,7 +40,7 @@ Signed-off-by: Phil Elwell unsigned bad_bits, ugly_bits; int status; -@@ -3923,6 +3924,14 @@ int spi_setup(struct spi_device *spi) +@@ -3933,6 +3934,14 @@ int spi_setup(struct spi_device *spi) "setup: MOSI configured to idle low and high at the same time.\n"); return -EINVAL; } diff --git a/lede/target/linux/bcm27xx/patches-6.12/950-0335-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch b/lede/target/linux/bcm27xx/patches-6.12/950-0335-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch index 9abbcd0bae..b99b85649a 100644 --- a/lede/target/linux/bcm27xx/patches-6.12/950-0335-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch +++ b/lede/target/linux/bcm27xx/patches-6.12/950-0335-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch @@ -75,7 +75,7 @@ Signed-off-by: Jonathan Bell if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA && --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c -@@ -3661,6 +3661,48 @@ static int xhci_align_td(struct xhci_hcd +@@ -3666,6 +3666,48 @@ static int xhci_align_td(struct xhci_hcd return 1; } @@ -124,7 +124,7 @@ Signed-off-by: Jonathan Bell /* This is very similar to what ehci-q.c qtd_fill() does */ int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags, struct urb *urb, int slot_id, unsigned int ep_index) -@@ -3815,6 +3857,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd * +@@ -3820,6 +3862,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd * } check_trb_math(urb, enqd_len); @@ -133,7 +133,7 @@ Signed-off-by: Jonathan Bell giveback_first_trb(xhci, slot_id, ep_index, urb->stream_id, start_cycle, start_trb); return 0; -@@ -3963,6 +4007,8 @@ int xhci_queue_ctrl_tx(struct xhci_hcd * +@@ -3968,6 +4012,8 @@ int xhci_queue_ctrl_tx(struct xhci_hcd * /* Event on completion */ field | TRB_IOC | TRB_TYPE(TRB_STATUS) | ep_ring->cycle_state); diff --git a/lede/target/linux/bcm27xx/patches-6.12/950-0344-sdhci-Add-SD-Express-hook.patch b/lede/target/linux/bcm27xx/patches-6.12/950-0344-sdhci-Add-SD-Express-hook.patch index 7fe2856c9f..ef89cdb217 100644 --- a/lede/target/linux/bcm27xx/patches-6.12/950-0344-sdhci-Add-SD-Express-hook.patch +++ b/lede/target/linux/bcm27xx/patches-6.12/950-0344-sdhci-Add-SD-Express-hook.patch @@ -12,7 +12,7 @@ sdhci: remove PYA0_INTR_BUG quirk. Add quirks to disable some of the higher SDR --- a/drivers/mmc/host/sdhci-of-dwcmshc.c +++ b/drivers/mmc/host/sdhci-of-dwcmshc.c -@@ -1236,7 +1236,11 @@ static const struct dwcmshc_pltfm_data s +@@ -1241,7 +1241,11 @@ static const struct dwcmshc_pltfm_data s .quirks = SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN | SDHCI_QUIRK_BROKEN_TIMEOUT_VAL, .quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN | diff --git a/lede/target/linux/bcm27xx/patches-6.12/950-0348-usb-dwc3-Set-DMA-and-coherent-masks-early.patch b/lede/target/linux/bcm27xx/patches-6.12/950-0348-usb-dwc3-Set-DMA-and-coherent-masks-early.patch index e60f4e9232..97030141eb 100644 --- a/lede/target/linux/bcm27xx/patches-6.12/950-0348-usb-dwc3-Set-DMA-and-coherent-masks-early.patch +++ b/lede/target/linux/bcm27xx/patches-6.12/950-0348-usb-dwc3-Set-DMA-and-coherent-masks-early.patch @@ -212,7 +212,7 @@ Signed-off-by: Jonathan Bell }, --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c -@@ -1319,6 +1319,24 @@ static void dwc3_config_threshold(struct +@@ -1320,6 +1320,24 @@ static void dwc3_config_threshold(struct } } @@ -237,7 +237,7 @@ Signed-off-by: Jonathan Bell /** * dwc3_core_init - Low-level initialization of DWC3 Core * @dwc: Pointer to our controller context structure -@@ -1386,6 +1404,8 @@ static int dwc3_core_init(struct dwc3 *d +@@ -1387,6 +1405,8 @@ static int dwc3_core_init(struct dwc3 *d dwc3_config_soc_bus(dwc); @@ -246,7 +246,7 @@ Signed-off-by: Jonathan Bell ret = dwc3_phy_power_on(dwc); if (ret) goto err_exit_phy; -@@ -1490,6 +1510,24 @@ static int dwc3_core_init(struct dwc3 *d +@@ -1491,6 +1511,24 @@ static int dwc3_core_init(struct dwc3 *d dwc3_writel(dwc->regs, DWC3_LLUCTL, reg); } @@ -271,7 +271,7 @@ Signed-off-by: Jonathan Bell return 0; err_power_off_phy: -@@ -1675,6 +1713,7 @@ static void dwc3_get_properties(struct d +@@ -1676,6 +1714,7 @@ static void dwc3_get_properties(struct d u8 tx_thr_num_pkt_prd = 0; u8 tx_max_burst_prd = 0; u8 tx_fifo_resize_max_num; @@ -279,7 +279,7 @@ Signed-off-by: Jonathan Bell /* default to highest possible threshold */ lpm_nyet_threshold = 0xf; -@@ -1695,6 +1734,9 @@ static void dwc3_get_properties(struct d +@@ -1696,6 +1735,9 @@ static void dwc3_get_properties(struct d */ tx_fifo_resize_max_num = 6; @@ -289,7 +289,7 @@ Signed-off-by: Jonathan Bell dwc->maximum_speed = usb_get_maximum_speed(dev); dwc->max_ssp_rate = usb_get_maximum_ssp_rate(dev); dwc->dr_mode = usb_get_dr_mode(dev); -@@ -1809,6 +1851,9 @@ static void dwc3_get_properties(struct d +@@ -1810,6 +1852,9 @@ static void dwc3_get_properties(struct d dwc->dis_split_quirk = device_property_read_bool(dev, "snps,dis-split-quirk"); @@ -299,7 +299,7 @@ Signed-off-by: Jonathan Bell dwc->lpm_nyet_threshold = lpm_nyet_threshold; dwc->tx_de_emphasis = tx_de_emphasis; -@@ -1826,6 +1871,8 @@ static void dwc3_get_properties(struct d +@@ -1827,6 +1872,8 @@ static void dwc3_get_properties(struct d dwc->tx_thr_num_pkt_prd = tx_thr_num_pkt_prd; dwc->tx_max_burst_prd = tx_max_burst_prd; @@ -308,7 +308,7 @@ Signed-off-by: Jonathan Bell dwc->tx_fifo_resize_max_num = tx_fifo_resize_max_num; } -@@ -2184,6 +2231,12 @@ static int dwc3_probe(struct platform_de +@@ -2185,6 +2232,12 @@ static int dwc3_probe(struct platform_de if (IS_ERR(dwc->usb_psy)) return dev_err_probe(dev, PTR_ERR(dwc->usb_psy), "couldn't get usb power supply\n"); diff --git a/lede/target/linux/bcm27xx/patches-6.12/950-0358-mmc-sdhci-of-dwcmshc-define-sdio-timeout-clocks.patch b/lede/target/linux/bcm27xx/patches-6.12/950-0358-mmc-sdhci-of-dwcmshc-define-sdio-timeout-clocks.patch index 9cf0c1ad16..ebdb57af0a 100644 --- a/lede/target/linux/bcm27xx/patches-6.12/950-0358-mmc-sdhci-of-dwcmshc-define-sdio-timeout-clocks.patch +++ b/lede/target/linux/bcm27xx/patches-6.12/950-0358-mmc-sdhci-of-dwcmshc-define-sdio-timeout-clocks.patch @@ -30,8 +30,8 @@ Signed-off-by: Jonathan Bell int vendor_specific_area1; /* P_VENDOR_SPECIFIC_AREA1 reg */ int vendor_specific_area2; /* P_VENDOR_SPECIFIC_AREA2 reg */ -@@ -289,6 +290,17 @@ static void dwcmshc_adma_write_desc(stru - sdhci_adma_write_desc(host, desc, addr, len, cmd); +@@ -302,6 +303,17 @@ static void dwcmshc_reset(struct sdhci_h + sdhci_writel(host, SDHCI_INT_RESPONSE, SDHCI_INT_STATUS); } +static void dwcmshc_set_clock(struct sdhci_host *host, unsigned int clock) @@ -48,7 +48,7 @@ Signed-off-by: Jonathan Bell static unsigned int dwcmshc_get_max_clock(struct sdhci_host *host) { struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); -@@ -1138,10 +1150,11 @@ static int sg2042_init(struct device *de +@@ -1143,10 +1155,11 @@ static int sg2042_init(struct device *de } static const struct sdhci_ops sdhci_dwcmshc_ops = { @@ -58,10 +58,10 @@ Signed-off-by: Jonathan Bell .set_uhs_signaling = dwcmshc_set_uhs_signaling, .get_max_clock = dwcmshc_get_max_clock, + .get_timeout_clock = sdhci_pltfm_clk_get_timeout_clock, - .reset = sdhci_reset, + .reset = dwcmshc_reset, .adma_write_desc = dwcmshc_adma_write_desc, .irq = dwcmshc_cqe_irq_handler, -@@ -1214,8 +1227,10 @@ static const struct sdhci_ops sdhci_dwcm +@@ -1219,8 +1232,10 @@ static const struct sdhci_ops sdhci_dwcm static const struct dwcmshc_pltfm_data sdhci_dwcmshc_pdata = { .pdata = { .ops = &sdhci_dwcmshc_ops, @@ -74,7 +74,7 @@ Signed-off-by: Jonathan Bell }, }; -@@ -1230,6 +1245,15 @@ static const struct dwcmshc_pltfm_data s +@@ -1235,6 +1250,15 @@ static const struct dwcmshc_pltfm_data s }; #endif @@ -90,7 +90,7 @@ Signed-off-by: Jonathan Bell static const struct dwcmshc_pltfm_data sdhci_dwcmshc_rk35xx_pdata = { .pdata = { .ops = &sdhci_dwcmshc_rk35xx_ops, -@@ -1353,6 +1377,10 @@ dsbl_cqe_caps: +@@ -1358,6 +1382,10 @@ dsbl_cqe_caps: static const struct of_device_id sdhci_dwcmshc_dt_ids[] = { { @@ -101,7 +101,7 @@ Signed-off-by: Jonathan Bell .compatible = "rockchip,rk3588-dwcmshc", .data = &sdhci_dwcmshc_rk35xx_pdata, }, -@@ -1445,13 +1473,32 @@ static int dwcmshc_probe(struct platform +@@ -1450,13 +1478,32 @@ static int dwcmshc_probe(struct platform priv->bus_clk = devm_clk_get(dev, "bus"); if (!IS_ERR(priv->bus_clk)) clk_prepare_enable(priv->bus_clk); @@ -134,7 +134,7 @@ Signed-off-by: Jonathan Bell priv->vendor_specific_area1 = sdhci_readl(host, DWCMSHC_P_VENDOR_AREA1) & DWCMSHC_AREA1_MASK; -@@ -1511,6 +1558,7 @@ err_rpm: +@@ -1516,6 +1563,7 @@ err_rpm: pm_runtime_put_noidle(dev); err_clk: clk_disable_unprepare(pltfm_host->clk); diff --git a/lede/target/linux/bcm27xx/patches-6.12/950-0393-drm-fb-helper-Look-up-preferred-fbdev-node-number-fr.patch b/lede/target/linux/bcm27xx/patches-6.12/950-0393-drm-fb-helper-Look-up-preferred-fbdev-node-number-fr.patch index 3d059f253a..a563c222b1 100644 --- a/lede/target/linux/bcm27xx/patches-6.12/950-0393-drm-fb-helper-Look-up-preferred-fbdev-node-number-fr.patch +++ b/lede/target/linux/bcm27xx/patches-6.12/950-0393-drm-fb-helper-Look-up-preferred-fbdev-node-number-fr.patch @@ -19,7 +19,7 @@ Signed-off-by: Dave Stevenson --- a/drivers/gpu/drm/drm_fb_helper.c +++ b/drivers/gpu/drm/drm_fb_helper.c -@@ -1803,7 +1803,7 @@ __drm_fb_helper_initial_config_and_unloc +@@ -1797,7 +1797,7 @@ __drm_fb_helper_initial_config_and_unloc struct drm_device *dev = fb_helper->dev; struct fb_info *info; unsigned int width, height; @@ -28,7 +28,7 @@ Signed-off-by: Dave Stevenson width = dev->mode_config.max_width; height = dev->mode_config.max_height; -@@ -1831,6 +1831,15 @@ __drm_fb_helper_initial_config_and_unloc +@@ -1825,6 +1825,15 @@ __drm_fb_helper_initial_config_and_unloc * register the fbdev emulation instance in kernel_fb_helper_list. */ mutex_unlock(&fb_helper->lock); diff --git a/lede/target/linux/bcm27xx/patches-6.12/950-0410-media-i2c-adv7180-Add-support-for-V4L2_CID_LINK_FREQ.patch b/lede/target/linux/bcm27xx/patches-6.12/950-0410-media-i2c-adv7180-Add-support-for-V4L2_CID_LINK_FREQ.patch index d67112a069..1ec30edc79 100644 --- a/lede/target/linux/bcm27xx/patches-6.12/950-0410-media-i2c-adv7180-Add-support-for-V4L2_CID_LINK_FREQ.patch +++ b/lede/target/linux/bcm27xx/patches-6.12/950-0410-media-i2c-adv7180-Add-support-for-V4L2_CID_LINK_FREQ.patch @@ -1,14 +1,14 @@ -From 954129f16c200e41a00ebebe2e22efc01b243538 Mon Sep 17 00:00:00 2001 -From: Dom Cobley -Date: Fri, 14 Nov 2025 14:08:18 +0000 -Subject: [PATCH] Revert "Revert "media: i2c: adv7180: Add support for - V4L2_CID_LINK_FREQ"" - -This reverts commit 00ecb85c58501f8f7ae75fcb069bbbad5542e853. ---- - drivers/media/i2c/adv7180.c | 39 +++++++++++++++++++++++++++++++++++-- - 1 file changed, 37 insertions(+), 2 deletions(-) - +From 954129f16c200e41a00ebebe2e22efc01b243538 Mon Sep 17 00:00:00 2001 +From: Dom Cobley +Date: Fri, 14 Nov 2025 14:08:18 +0000 +Subject: [PATCH] Revert "Revert "media: i2c: adv7180: Add support for + V4L2_CID_LINK_FREQ"" + +This reverts commit 00ecb85c58501f8f7ae75fcb069bbbad5542e853. +--- + drivers/media/i2c/adv7180.c | 39 +++++++++++++++++++++++++++++++++++-- + 1 file changed, 37 insertions(+), 2 deletions(-) + --- a/drivers/media/i2c/adv7180.c +++ b/drivers/media/i2c/adv7180.c @@ -189,6 +189,16 @@ diff --git a/lede/target/linux/bcm27xx/patches-6.12/950-0413-drivers-usb-dwc3-add-FS-LS-bus-instance-parkmode-dis.patch b/lede/target/linux/bcm27xx/patches-6.12/950-0413-drivers-usb-dwc3-add-FS-LS-bus-instance-parkmode-dis.patch index 80046cc195..f8e80fc4d0 100644 --- a/lede/target/linux/bcm27xx/patches-6.12/950-0413-drivers-usb-dwc3-add-FS-LS-bus-instance-parkmode-dis.patch +++ b/lede/target/linux/bcm27xx/patches-6.12/950-0413-drivers-usb-dwc3-add-FS-LS-bus-instance-parkmode-dis.patch @@ -16,7 +16,7 @@ Signed-off-by: Jonathan Bell --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c -@@ -1485,6 +1485,9 @@ static int dwc3_core_init(struct dwc3 *d +@@ -1486,6 +1486,9 @@ static int dwc3_core_init(struct dwc3 *d if (dwc->parkmode_disable_hs_quirk) reg |= DWC3_GUCTL1_PARKMODE_DISABLE_HS; @@ -26,7 +26,7 @@ Signed-off-by: Jonathan Bell if (DWC3_VER_IS_WITHIN(DWC3, 290A, ANY)) { if (dwc->maximum_speed == USB_SPEED_FULL || dwc->maximum_speed == USB_SPEED_HIGH) -@@ -1831,6 +1834,8 @@ static void dwc3_get_properties(struct d +@@ -1832,6 +1835,8 @@ static void dwc3_get_properties(struct d "snps,parkmode-disable-ss-quirk"); dwc->parkmode_disable_hs_quirk = device_property_read_bool(dev, "snps,parkmode-disable-hs-quirk"); diff --git a/lede/target/linux/bcm27xx/patches-6.12/950-0524-usb-dwc3-core-add-support-for-setting-NAK-enhancemen.patch b/lede/target/linux/bcm27xx/patches-6.12/950-0524-usb-dwc3-core-add-support-for-setting-NAK-enhancemen.patch index 666c391c4f..92cb7e9481 100644 --- a/lede/target/linux/bcm27xx/patches-6.12/950-0524-usb-dwc3-core-add-support-for-setting-NAK-enhancemen.patch +++ b/lede/target/linux/bcm27xx/patches-6.12/950-0524-usb-dwc3-core-add-support-for-setting-NAK-enhancemen.patch @@ -22,7 +22,7 @@ Signed-off-by: Jonathan Bell --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c -@@ -1479,6 +1479,12 @@ static int dwc3_core_init(struct dwc3 *d +@@ -1480,6 +1480,12 @@ static int dwc3_core_init(struct dwc3 *d if (dwc->dis_tx_ipgap_linecheck_quirk) reg |= DWC3_GUCTL1_TX_IPGAP_LINECHECK_DIS; @@ -35,7 +35,7 @@ Signed-off-by: Jonathan Bell if (dwc->parkmode_disable_ss_quirk) reg |= DWC3_GUCTL1_PARKMODE_DISABLE_SS; -@@ -1830,6 +1836,10 @@ static void dwc3_get_properties(struct d +@@ -1831,6 +1837,10 @@ static void dwc3_get_properties(struct d "snps,resume-hs-terminations"); dwc->ulpi_ext_vbus_drv = device_property_read_bool(dev, "snps,ulpi-ext-vbus-drv"); diff --git a/lede/target/linux/bcm27xx/patches-6.12/950-0947-fixup-mmc-sdhci-of-dwcmshc-define-sdio-timeout-clock.patch b/lede/target/linux/bcm27xx/patches-6.12/950-0947-fixup-mmc-sdhci-of-dwcmshc-define-sdio-timeout-clock.patch index 809ab256f4..727815eb9f 100644 --- a/lede/target/linux/bcm27xx/patches-6.12/950-0947-fixup-mmc-sdhci-of-dwcmshc-define-sdio-timeout-clock.patch +++ b/lede/target/linux/bcm27xx/patches-6.12/950-0947-fixup-mmc-sdhci-of-dwcmshc-define-sdio-timeout-clock.patch @@ -19,7 +19,7 @@ Signed-off-by: Phil Elwell --- a/drivers/mmc/host/sdhci-of-dwcmshc.c +++ b/drivers/mmc/host/sdhci-of-dwcmshc.c -@@ -1245,13 +1245,15 @@ static const struct dwcmshc_pltfm_data s +@@ -1250,13 +1250,15 @@ static const struct dwcmshc_pltfm_data s }; #endif diff --git a/lede/target/linux/bcm27xx/patches-6.12/950-0950-usb-xhci-default-to-Intel-scheme-for-calculating-U1-.patch b/lede/target/linux/bcm27xx/patches-6.12/950-0950-usb-xhci-default-to-Intel-scheme-for-calculating-U1-.patch index 33f8ca71ad..cdd429ba01 100644 --- a/lede/target/linux/bcm27xx/patches-6.12/950-0950-usb-xhci-default-to-Intel-scheme-for-calculating-U1-.patch +++ b/lede/target/linux/bcm27xx/patches-6.12/950-0950-usb-xhci-default-to-Intel-scheme-for-calculating-U1-.patch @@ -40,7 +40,7 @@ Signed-off-by: Jonathan Bell static bool td_on_ring(struct xhci_td *td, struct xhci_ring *ring) { struct xhci_segment *seg; -@@ -4791,7 +4795,7 @@ static u16 xhci_calculate_u1_timeout(str +@@ -4792,7 +4796,7 @@ static u16 xhci_calculate_u1_timeout(str } } @@ -49,7 +49,7 @@ Signed-off-by: Jonathan Bell timeout_ns = xhci_calculate_intel_u1_timeout(udev, desc); else timeout_ns = udev->u1_params.sel; -@@ -4855,7 +4859,7 @@ static u16 xhci_calculate_u2_timeout(str +@@ -4856,7 +4860,7 @@ static u16 xhci_calculate_u2_timeout(str } } diff --git a/lede/target/linux/generic/pending-6.12/510-block-add-uImage.FIT-subimage-block-driver.patch b/lede/target/linux/generic/pending-6.12/510-block-add-uImage.FIT-subimage-block-driver.patch index c3d246c5ee..21615160a9 100644 --- a/lede/target/linux/generic/pending-6.12/510-block-add-uImage.FIT-subimage-block-driver.patch +++ b/lede/target/linux/generic/pending-6.12/510-block-add-uImage.FIT-subimage-block-driver.patch @@ -36,7 +36,7 @@ Signed-off-by: Daniel Golle --- a/MAINTAINERS +++ b/MAINTAINERS -@@ -23668,6 +23668,12 @@ F: Documentation/filesystems/ubifs-authe +@@ -23663,6 +23663,12 @@ F: Documentation/filesystems/ubifs-authe F: Documentation/filesystems/ubifs.rst F: fs/ubifs/ diff --git a/mihomo/go.mod b/mihomo/go.mod index e15afab758..bb55812230 100644 --- a/mihomo/go.mod +++ b/mihomo/go.mod @@ -25,7 +25,7 @@ require ( github.com/metacubex/http v0.1.0 github.com/metacubex/kcp-go v0.0.0-20251111012849-7455698490e9 github.com/metacubex/mlkem v0.1.0 - github.com/metacubex/quic-go v0.57.1-0.20251217071004-e89f497a2e72 + github.com/metacubex/quic-go v0.58.1-0.20251222092318-72a81ab195ec github.com/metacubex/randv2 v0.2.0 github.com/metacubex/restls-client-go v0.1.7 github.com/metacubex/sing v0.5.6 diff --git a/mihomo/go.sum b/mihomo/go.sum index 2a01c51737..4756c83bd4 100644 --- a/mihomo/go.sum +++ b/mihomo/go.sum @@ -114,8 +114,8 @@ github.com/metacubex/nftables v0.0.0-20250503052935-30a69ab87793 h1:1Qpuy+sU3Dmy github.com/metacubex/nftables v0.0.0-20250503052935-30a69ab87793/go.mod h1:RjRNb4G52yAgfR+Oe/kp9G4PJJ97Fnj89eY1BFO3YyA= github.com/metacubex/qpack v0.6.0 h1:YqClGIMOpiRYLjV1qOs483Od08MdPgRnHjt90FuaAKw= github.com/metacubex/qpack v0.6.0/go.mod h1:lKGSi7Xk94IMvHGOmxS9eIei3bvIqpOAImEBsaOwTkA= -github.com/metacubex/quic-go v0.57.1-0.20251217071004-e89f497a2e72 h1:kNlYHZ75itJwkerDiySpixX+dKsv/K0TYQsKvuxogNM= -github.com/metacubex/quic-go v0.57.1-0.20251217071004-e89f497a2e72/go.mod h1:N071X2oW2+kIhLlHW3mfcD2QP+zWu2bEs1EEAm66bvI= +github.com/metacubex/quic-go v0.58.1-0.20251222092318-72a81ab195ec h1:5ePGO2Xht06fpwjNIzfY5XS+82xwDHHx4xGbqgLbxjA= +github.com/metacubex/quic-go v0.58.1-0.20251222092318-72a81ab195ec/go.mod h1:oNzMrmylS897M3zSMuapIdwSwfq6F2qW01Z3NhVRJhk= github.com/metacubex/randv2 v0.2.0 h1:uP38uBvV2SxYfLj53kuvAjbND4RUDfFJjwr4UigMiLs= github.com/metacubex/randv2 v0.2.0/go.mod h1:kFi2SzrQ5WuneuoLLCMkABtiBu6VRrMrWFqSPyj2cxY= github.com/metacubex/restls-client-go v0.1.7 h1:eCwiXCTQb5WJu9IlgYvDBA1OgrINv58dEe7hcN5H15k= diff --git a/openwrt-packages/luci-app-ddnsto/Makefile b/openwrt-packages/luci-app-ddnsto/Makefile index de2b513369..cbc1b51173 100644 --- a/openwrt-packages/luci-app-ddnsto/Makefile +++ b/openwrt-packages/luci-app-ddnsto/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk LUCI_TITLE:=LuCI support for ddnsto LUCI_DEPENDS:=+ddnsto +block-mount LUCI_PKGARCH:=all -PKG_VERSION:=3.0.4-r1 +PKG_VERSION:=3.2.0 PKG_RELEASE:= include $(TOPDIR)/feeds/luci/luci.mk diff --git a/openwrt-packages/luci-app-ddnsto/luasrc/controller/ddnsto.lua b/openwrt-packages/luci-app-ddnsto/luasrc/controller/ddnsto.lua index b3ccca75b5..e4f7af139f 100644 --- a/openwrt-packages/luci-app-ddnsto/luasrc/controller/ddnsto.lua +++ b/openwrt-packages/luci-app-ddnsto/luasrc/controller/ddnsto.lua @@ -1,50 +1,100 @@ -local http = require "luci.http" +--[[ +DDNSTO LuCI Controller + JSON API +================================= + +目标 +---- +为 ddnsto 的 LuCI 页面(可用原生 JS/React/Vue)提供稳定的后端接口: +1) 读取/更新 UCI 配置:/etc/config/ddnsto +2) 控制 init.d 服务:/etc/init.d/ddnsto start|stop|restart|reload +3) 查询运行状态:ddnstod 是否在运行、PID、enabled/token 是否就绪 +4) (可选)读取最近日志:logread 过滤 ddnsto/ddnstod + +路由说明 +-------- +默认挂载在: +/cgi-bin/luci/admin/services/ddnsto/page -- LuCI 页面入口(模板) +/cgi-bin/luci/admin/services/ddnsto/api/config -- GET/POST 配置 +/c.../ddnsto/api/service -- POST 服务控制 +/c.../ddnsto/api/status -- GET 状态 +/c.../ddnsto/api/logs -- GET 日志(可选) + +CSRF 说明 +--------- +LuCI 对 POST 通常要求 token 校验。这里提供两种方式(二选一): +- Header: X-LuCI-Token: +- Form字段: token=<...>(application/x-www-form-urlencoded 时常用) + +对于前端(React)最佳实践是: +- 在 LuCI 模板里注入 window.ddnstoCsrfToken = "<%=luci.dispatcher.context.token%>" +- 所有 POST 带上该 token + +前端对接建议 +------------ +- GET config/status: fetch(url, {credentials: 'same-origin'}) +- POST config/service: JSON body + X-LuCI-Token,或表单 token + +开发/调试注意 +------------ +1) 修改 controller 后,LuCI 可能缓存索引: + - rm -f /tmp/luci-indexcache + - /etc/init.d/uhttpd restart (或重启设备) +2) 确保 /etc/config/ddnsto 存在;否则 index() 会直接 return。 +3) 若想扩展更多字段(如 address),建议在 GET 返回里带出,但 POST 仅允许白名单字段写入。 + +安全边界 +-------- +本接口位于 LuCI admin 路径下,默认需要登录 LuCI。 +此外: +- service action 做了白名单限制,避免命令注入 +- config 写入做了基本校验(bool/number) +--]] + module("luci.controller.ddnsto", package.seeall) -function index() - if not nixio.fs.access("/etc/config/ddnsto") then - return - end - - entry({"admin","services", "ddnsto"}, call("redirect_index"), _("DDNSTO 远程控制"), 20).dependent = true - entry({"admin","services", "ddnsto", "pages"}, call("ddnsto_index")).leaf = true - if nixio.fs.access("/usr/lib/lua/luci/view/ddnsto/main_dev.htm") then - entry({"admin","services", "ddnsto", "dev"}, call("ddnsto_dev")).leaf = true - end - - -- entry({"admin", "services", "ddnsto"}, cbi("ddnsto"), _("DDNS.to"), 20) - - -- entry({"admin", "services", "ddnsto_status"}, call("ddnsto_status")) - entry({"admin", "services", "ddnsto", "form"}, call("ddnsto_form")) - entry({"admin", "services", "ddnsto", "submit"}, call("ddnsto_submit")) - entry({"admin", "services", "ddnsto", "log"}, call("ddnsto_log")) +-- ========== +-- Utilities +-- ========== +local function write_json(tbl) + local http = require "luci.http" + local jsonc = require "luci.jsonc" + http.prepare_content("application/json") + http.write(jsonc.stringify(tbl)) end - -local function isempty(s) - return s == nil or s == '' +local function bad_request(msg) + write_json({ ok = false, error = msg or "bad request" }) end -local function trim(input) - return (string.gsub(input, "^%s*(.-)%s*$", "%1")) +local function method_not_allowed() + write_json({ ok = false, error = "method not allowed" }) end +local function read_json_body() + local http = require "luci.http" + local jsonc = require "luci.jsonc" + local ctype = http.getenv("CONTENT_TYPE") or "" + if not ctype:match("^application/json") then + return nil + end + local raw = http.content() or "" + if #raw == 0 then + return nil + end + local obj = jsonc.parse(raw) + if type(obj) ~= "table" then + return nil + end + return obj +end -local function get_data() - local uci = require "luci.model.uci".cursor() - - local data = { - enabled = uci:get_first("ddnsto", "ddnsto", "enabled") == "1", - feat_disk_path_selected = uci:get_first("ddnsto", "ddnsto", "feat_disk_path_selected") , - feat_enabled = uci:get_first("ddnsto", "ddnsto", "feat_enabled") == "1" , - feat_password = uci:get_first("ddnsto", "ddnsto", "feat_password"), - feat_username = uci:get_first("ddnsto", "ddnsto", "feat_username"), - feat_port = tonumber(uci:get_first("ddnsto", "ddnsto", "feat_port")), - index = (tonumber(uci:get_first("ddnsto", "ddnsto", "index")) or 0), - token = uci:get_first("ddnsto", "ddnsto", "token") - } - return data +local function get_command2(cmd) + local f = io.popen(cmd, "r") + if not f then return "" end + local out = f:read("*l") or "" + f:close() + return (out:gsub("^%s+", ""):gsub("%s+$", "")) end local function get_command(cmd) @@ -58,413 +108,600 @@ local function get_command(cmd) end -local function status_container() - local sys = require "luci.sys" - local uci = require "luci.model.uci".cursor() - - - local running = "未运行" - local feat_running = "未运行" - local webdav_running = "未启用" - local webdav_url = "未启用" - local wol_running = "未启用" - - local cmd = "/usr/sbin/ddnstod -x ".. tostring(get_data().index) .." -w | awk '{print $2}'" - local device_id = get_command(cmd) - local version = get_command("/usr/sbin/ddnstod -v") - - if sys.call("pidof ddnstod >/dev/null") == 0 then - running = "已启动" - end - - local feat_port = (tonumber(uci:get_first("ddnsto", "ddnsto", "feat_port")) or 3030) - local http = require "luci.http" - local ip = http.getenv('SERVER_NAME') - if sys.call("pidof ddwebdav >/dev/null") == 0 then - feat_running = "已启用" - webdav_running = "已启用" - wol_running = "已启用" - webdav_url = "http://" .. ip ..":".. feat_port .. "/webdav" - end - - local uci = require "luci.model.uci".cursor() - local feat_username = (uci:get_first("ddnsto", "ddnsto", "feat_username") or "") - - local c1 = { - labels = { - { - key = "服务状态", - value = running - }, - { - key = "插件版本", - value = version - }, - { - key = "设备ID", - value = device_id .. "(设备编号: ".. get_data().index ..")" - }, - { - key = "拓展功能", - value = feat_running - }, - { - key = "拓展用户名", - value = feat_username - }, { - key = "webdav服务", - value = webdav_running - }, - { - key = "webdav地址", - value = ""..webdav_url.."" - }, - { - key = "远程开机服务", - value = wol_running - }, - { - key = "控制台", - value = "点击前往DDNSTO控制台" - } - }, - title = "服务状态" - } - return c1 +local function param(body, key) + local http = require "luci.http" + if type(body) == "table" and body[key] ~= nil then + return tostring(body[key]) + end + return http.formvalue(key) end -local function main_container() - local c2 = { - properties = { - { - name = "enabled", - title = "启用", - type = "boolean" - }, - { - name = "token", - required = true, - title = "用户Token", - type = "string", - ["ui:options"] = { - description = "如何获取令牌?" - } - }, - { - name = "index", - enum = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, }, - enumNames = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }, - title = "设备编号", - type = "interger", - ["ui:options"] = { - description = "如有多台设备id重复,请修改此编号" - } - }, - }, - title = "基础设置" - } - return c2 +local function is_bool01(v) + return v == "0" or v == "1" end -local function getBlockDevices() - local fs = require "nixio.fs" +local function is_uint(v) + return v ~= nil and tostring(v):match("^%d+$") ~= nil +end - local block = io.popen("/sbin/block info", "r") - if block then - local rv = {} - while true do - local ln = block:read("*l") - if not ln then - break - end +local function is_empty(v) + return v == nil or tostring(v):match("^%s*$") ~= nil +end - local dev = ln:match("^/dev/(.-):") - if dev then - for key, val in ln:gmatch([[(%w+)="(.-)"]]) do - if key:lower() == "mount" then - table.insert(rv, val) - end - end - end +local function has_space(v) + return v ~= nil and tostring(v):find("%s") ~= nil +end + +-- LuCI CSRF Check +local function require_csrf() + local http = require "luci.http" + local disp = require "luci.dispatcher" + + local method = http.getenv("REQUEST_METHOD") or "" + if method ~= "POST" then + return true + end + + local ctx = disp.context + + -- 1. Ensure user is authenticated (session exists) + if not (ctx and ctx.authsession) then + write_json({ ok = false, error = "auth session missing" }) + return false + end + + local expected = ctx.token + + local header_token = http.getenv("HTTP_X_LUCI_TOKEN") + local form_token = http.formvalue("token") + local body = read_json_body() + local body_token = (type(body) == "table") and body["token"] or nil + + local provided = header_token or form_token or body_token + + -- 2. If server has a token, enforce strict match + if expected then + if provided ~= expected then + write_json({ ok = false, error = "bad csrf token" }) + return false + end + else + -- 3. If server lost the token (common in some envs), + -- just ensure the client sent *something* (e.g. via custom header) + -- This protects against basic CSRF because attackers can't easily set custom headers. + if not provided or #provided == 0 then + write_json({ ok = false, error = "csrf token missing" }) + return false + end + end + + return true +end + +local function ensure_ddnsto_section() + local uci = require "luci.model.uci".cursor() + local sid = nil + uci:foreach("ddnsto", "ddnsto", function(s) sid = s[".name"] end) + if not sid then + sid = uci:add("ddnsto", "ddnsto") + end + return sid +end + +local function read_config() + local uci = require "luci.model.uci".cursor() + local sys = require "luci.sys" + local cfg = { + enabled = "1", + token = "", + index = "0", + logger = "0", + feat_enabled = "0", + feat_port = "3033", + feat_username = "", + feat_password = "", + feat_disk_path_selected = "", + address = "", + mounts = {}, + device_id = "", + deviceId = "", + } + + uci:foreach("ddnsto", "ddnsto", function(s) + cfg.enabled = s.enabled or cfg.enabled + cfg.token = s.token or cfg.token + cfg.index = s.index or cfg.index + cfg.logger = s.logger or cfg.logger + cfg.feat_enabled = s.feat_enabled or cfg.feat_enabled + cfg.feat_port = s.feat_port or cfg.feat_port + cfg.feat_username = s.feat_username or cfg.feat_username + cfg.feat_password = s.feat_password or cfg.feat_password + cfg.feat_disk_path_selected = s.feat_disk_path_selected or cfg.feat_disk_path_selected + cfg.address = s.address or cfg.address + end) + + do + local idx = cfg.index + if not (idx and tostring(idx):match("^%d+$")) then + idx = "0" + end + local cmd = string.format("/usr/sbin/ddnstod -x %s -w | awk '{print $2}'", idx) + local did = get_command(cmd) + cfg.device_id = did + cfg.deviceId = did + end + + -- Get mounts (via block info) + local mounts = {} + local block = io.popen("/sbin/block info", "r") + if block then + while true do + local ln = block:read("*l") + if not ln then break end + + local dev = ln:match("^/dev/(.-):") + if dev then + for key, val in ln:gmatch([[(%w+)="(.-)"]]) do + if key:lower() == "mount" then + table.insert(mounts, val) + end end - - block:close() - - return rv - else - return + end end + block:close() + end + cfg.mounts = mounts + + return cfg end -local function feat_container() - - local c3 = { - description = "启用后可支持控制台的“文件管理”及“远程开机”功能 查看教程", - properties = { - { - name = "feat_enabled", - title = "启用", - type = "boolean" - }, - { - name = "feat_port", - required = true, - title = "端口", - type = "interger", - ["ui:hidden"] = "{{rootValue.feat_enabled !== true }}" - }, - { - name = "feat_username", - required = true, - title = "授权用户名", - type = "string", - ["ui:hidden"] = "{{rootValue.feat_enabled !== true }}" - }, - { - name = "feat_password", - mode = "password", - required = true, - title = "授权用户密码", - type = "string", - ["ui:hidden"] = "{{rootValue.feat_enabled !== true }}" - }, - { - name = "feat_disk_path_selected", - enum = getBlockDevices(), - enumNames = getBlockDevices(), - required = true, - title = "共享磁盘", - type = "string", - ["ui:hidden"] = "{{rootValue.feat_enabled !== true }}" - } - }, - title = "拓展功能" - } - return c3 +-- ========== +-- LuCI index +-- ========== + +function index() + local ok_fs, fs = pcall(require, "nixio.fs") + if not (ok_fs and fs) then + local ok_lfs, lfs = pcall(require, "luci.fs") + if ok_lfs then fs = lfs end + end + + local has_config = true + if fs and fs.access then + has_config = fs.access("/etc/config/ddnsto") + end + if has_config == false then return end + + entry({"admin", "services", "ddnsto"}, firstchild(), _("DDNSTO 远程控制"), 60).dependent = false + entry({"admin", "services", "ddnsto", "page"}, call("action_page"), _("Settings"), 10).leaf = true + -- entry({"admin", "ddnsto_dev"}, call("action_ddnsto_dev"), _("DDNSTO (Dev)"), 99).leaf = true + + entry({"admin", "services", "ddnsto", "api", "config"}, call("api_config")).leaf = true + entry({"admin", "services", "ddnsto", "api", "service"}, call("api_service")).leaf = true + entry({"admin", "services", "ddnsto", "api", "run"}, call("api_run")).leaf = true + entry({"admin", "services", "ddnsto", "api", "restart"}, call("api_restart")).leaf = true + entry({"admin", "services", "ddnsto", "api", "stop"}, call("api_stop")).leaf = true + entry({"admin", "services", "ddnsto", "api", "onboarding", "start"}, call("api_onboarding_start")).leaf = true + entry({"admin", "services", "ddnsto", "api", "onboarding", "address"}, call("api_onboarding_address")).leaf = true + entry({"admin", "services", "ddnsto", "api", "status"}, call("api_status")).leaf = true + entry({"admin", "services", "ddnsto", "api", "logs"}, call("api_logs")).leaf = true end -local function get_containers() - local containers = { - status_container(), - main_container(), - feat_container() +function action_page() + local template = require "luci.template" + local dsp = require "luci.dispatcher" + local i18n = require "luci.i18n" + local ctx = dsp.context or {} + + local data = { + token = ctx.token or "", + prefix = dsp.build_url("admin", "services", "ddnsto"), + api_base = dsp.build_url(), + lang = i18n.context.lang or "zh-cn" + } + template.render("ddnsto/main", data) +end + +-- ========== +-- API: config +-- ========== + +function api_config() + local http = require "luci.http" + local uci = require "luci.model.uci".cursor() + local method = http.getenv("REQUEST_METHOD") or "" + + if method == "GET" then + write_json({ ok = true, data = read_config() }) + return + end + + if method ~= "POST" then + method_not_allowed() + return + end + + if not require_csrf() then return end + + local body = read_json_body() + + local enabled = param(body, "enabled") + local ddnsto_token = param(body, "ddnsto_token") + + local index = param(body, "index") + local logger = param(body, "logger") + local feat_enabled = param(body, "feat_enabled") + local feat_port = param(body, "feat_port") + local feat_username = param(body, "feat_username") + local feat_password = param(body, "feat_password") + local feat_disk_path_selected = param(body, "feat_disk_path_selected") + + -- 基本校验(按需扩展) + if enabled and not is_bool01(enabled) then return bad_request("bad enabled") end + if logger and not is_bool01(logger) then return bad_request("bad logger") end + if feat_enabled and not is_bool01(feat_enabled) then return bad_request("bad feat_enabled") end + + local has_payload = enabled ~= nil or ddnsto_token ~= nil or index ~= nil or logger ~= nil + or feat_enabled ~= nil or feat_port ~= nil or feat_username ~= nil or feat_password ~= nil + or feat_disk_path_selected ~= nil + if not has_payload then + return bad_request("invalid request") + end + + local enabled_on = enabled == "1" + local feat_on = feat_enabled == "1" + + if enabled_on and is_empty(ddnsto_token) then + return bad_request("请填写正确用户Token(令牌)") + end + + if ddnsto_token ~= nil and has_space(ddnsto_token) then + return bad_request("令牌勿包含空格") + end + + if not is_uint(index) then + return bad_request("请填写正确的设备编号,仅允许数字") + end + local index_num = tonumber(index) + if index_num < 0 or index_num > 99 then + return bad_request("请填写正确的设备编号,仅允许数字") + end + + if feat_on then + if not is_uint(feat_port) then + return bad_request("请填写正确的端口") + end + + local port_num = tonumber(feat_port) + if not port_num or port_num == 0 or port_num > 65535 then + return bad_request("请填写正确的端口") + end + + if is_empty(feat_username) then + return bad_request("请填写授权用户名") + end + if has_space(feat_username) then + return bad_request("用户名请勿包含空格") + end + if is_empty(feat_password) then + return bad_request("请填写授权用户密码") + end + if has_space(feat_password) then + return bad_request("用户密码请勿包含空格") + end + if is_empty(feat_disk_path_selected) then + return bad_request("请填写共享磁盘路径") + end + end + + local sid = ensure_ddnsto_section() + + -- 白名单写入:只写我们明确允许前端控制的字段 + if enabled then uci:set("ddnsto", sid, "enabled", enabled) end + if ddnsto_token ~= nil then uci:set("ddnsto", sid, "token", ddnsto_token) end + if index then uci:set("ddnsto", sid, "index", index) end + if logger then uci:set("ddnsto", sid, "logger", logger) end + if feat_enabled then uci:set("ddnsto", sid, "feat_enabled", feat_enabled) end + if feat_port then uci:set("ddnsto", sid, "feat_port", feat_port) end + if feat_username then uci:set("ddnsto", sid, "feat_username", feat_username) end + if feat_password then uci:set("ddnsto", sid, "feat_password", feat_password) end + if feat_disk_path_selected then uci:set("ddnsto", sid, "feat_disk_path_selected", feat_disk_path_selected) end + + uci:commit("ddnsto") + + -- Restart service to apply changes + local sys = require "luci.sys" + sys.call("/etc/init.d/ddnsto restart >/dev/null 2>&1") + + write_json({ ok = true }) +end + +-- ========== +-- API: service +-- ========== + +function api_service() + local http = require "luci.http" + local sys = require "luci.sys" + local method = http.getenv("REQUEST_METHOD") or "" + + if method ~= "POST" then + method_not_allowed() + return + end + + if not require_csrf() then return end + + local body = read_json_body() + local action = param(body, "action") or "" + + if action ~= "start" and action ~= "stop" and action ~= "restart" and action ~= "reload" then + return bad_request("bad action") + end + + local cmd = string.format("/etc/init.d/ddnsto %s >/dev/null 2>&1", action) + local rc = sys.call(cmd) + + write_json({ ok = (rc == 0), rc = rc }) +end + +local function run_service_action(action) + local http = require "luci.http" + local sys = require "luci.sys" + local method = http.getenv("REQUEST_METHOD") or "" + + if method ~= "POST" then + method_not_allowed() + return + end + + if not require_csrf() then return end + + if action ~= "start" and action ~= "stop" and action ~= "restart" then + return bad_request("bad action") + end + + local cmd = string.format("/etc/init.d/ddnsto %s >/dev/null 2>&1", action) + local rc = sys.call(cmd) + write_json({ ok = (rc == 0), rc = rc }) +end + +function api_run() + return run_service_action("start") +end + +function api_restart() + return run_service_action("restart") +end + +function api_stop() + return run_service_action("stop") +end + +-- ========== +-- API: onboarding helpers +-- ========== + +function api_onboarding_start() + local http = require "luci.http" + local uci = require "luci.model.uci".cursor() + local sys = require "luci.sys" + local method = http.getenv("REQUEST_METHOD") or "" + + if method ~= "POST" then + method_not_allowed() + return + end + + if not require_csrf() then return end + + local body = read_json_body() + local token = param(body, "token") + + if is_empty(token) then + return bad_request("token required") + end + if has_space(token) then + return bad_request("token must not contain spaces") + end + + local sid = ensure_ddnsto_section() + uci:set("ddnsto", sid, "token", token) + uci:set("ddnsto", sid, "enabled", "1") + uci:set("ddnsto", sid, "feat_enabled", "0") + uci:commit("ddnsto") + + local rc = sys.call("/etc/init.d/ddnsto restart >/dev/null 2>&1") + write_json({ ok = (rc == 0), rc = rc }) +end + +function api_onboarding_address() + local http = require "luci.http" + local uci = require "luci.model.uci".cursor() + local method = http.getenv("REQUEST_METHOD") or "" + + if method ~= "POST" then + method_not_allowed() + return + end + + if not require_csrf() then return end + + local body = read_json_body() + local url = param(body, "url") or param(body, "address") + + if is_empty(url) then + return bad_request("address required") + end + + local sid = ensure_ddnsto_section() + uci:set("ddnsto", sid, "address", url) + uci:commit("ddnsto") + + write_json({ ok = true }) +end + +-- ========== +-- API: status +-- ========== + +function api_status() + local sys = require "luci.sys" + local uci = require "luci.model.uci".cursor() + local jsonc = require "luci.jsonc" + + local enabled, token = "0", "" + local address, index = "", "0" + uci:foreach("ddnsto", "ddnsto", function(s) + enabled = s.enabled or "0" + token = s.token or "" + address = s.address or "" + index = s.index or index + end) + + local raw = sys.exec([[ubus call service list '{"name":"ddnsto"}' 2>/dev/null]]) or "" + local pid, running = "", false + + local ok, obj = pcall(jsonc.parse, raw) + if ok and type(obj) == "table" and type(obj.ddnsto) == "table" and type(obj.ddnsto.instances) == "table" then + for _, inst in pairs(obj.ddnsto.instances) do + if type(inst) == "table" and inst.running == true then + running = true + pid = tostring(inst.pid or "") + break + end + end + end + + local board_raw = sys.exec("ubus call system board 2>/dev/null") or "" + local hostname = "OpenWrt" + local ok_board, board_obj = pcall(jsonc.parse, board_raw) + if ok_board and type(board_obj) == "table" and board_obj.hostname then + hostname = board_obj.hostname + end + + local version = get_command("/usr/sbin/ddnstod -v") + + -- Check connectivity to the tunnel server (BusyBox nc may not support -z/-w flags) + local function resolve_host(host) + local out = sys.exec(string.format("nslookup %s 2>/dev/null", host)) or "" + local ip = out:match("Address 1:%s*([%d%.]+)") or out:match("Address:%s*([%d%.]+)") + return ip or "" + end + + local tunnel_ip = resolve_host("tunnel.kooldns.cn") + local tunnel_target = tunnel_ip ~= "" and tunnel_ip or "tunnel.kooldns.cn" + local tunnel_err = nil + local tunnel_ret = -1 + + if tunnel_ip == "" then + tunnel_err = "resolve tunnel.kooldns.cn failed" + else + local has_timeout = (sys.call("command -v timeout >/dev/null 2>&1") == 0) + if has_timeout then + -- Prefer timeout if available + tunnel_ret = sys.call(string.format("timeout 3 nc %s 4445 /dev/null 2>&1", tunnel_target)) + else + -- Fallback: background nc and kill after ~3s if still running + local tmpl = table.concat({ + "sh -c '", + "nc %s 4445 /dev/null 2>&1 & pid=$!;", + "for i in 1 2 3; do", + " sleep 1;", + " if ! kill -0 $pid 2>/dev/null; then", + " wait $pid;", + " exit $?;", + " fi;", + "done;", + "kill -9 $pid >/dev/null 2>&1;", + "wait $pid >/dev/null 2>&1;", + "exit 1", + "'" + }, " ") + tunnel_ret = sys.call(string.format(tmpl, tunnel_target)) + end + if tunnel_ret ~= 0 then + if has_timeout then + tunnel_err = string.format("nc exit %d", tunnel_ret) + else + tunnel_err = string.format("nc exit %d (no timeout available, BusyBox nc limited)", tunnel_ret) + end + end + end + + local tunnel_ok = (tunnel_ret == 0) + + local did = "" + do + local idx = index + if not (idx and tostring(idx):match("^%d+$")) then + idx = "0" + end + local cmd = string.format("/usr/sbin/ddnstod -x %s -w | awk '{print $2}'", idx) + did = get_command(cmd) + end + + write_json({ + ok = true, + data = { + enabled = enabled, + running = running, + pid = pid, + token_set = (token and #token > 0) or false, + address = address, + device_id = did, + deviceId = did, + hostname = hostname, + version = version, + tunnel_ok = tunnel_ok, + tunnel_ret = tunnel_ok and nil or tunnel_err, } - return containers + }) end -local function get_schema() - local actions = { - { - text = "保存并应用", - type = "apply", - } - } - local schema = { - actions = actions, - containers = get_containers(), - description = "DDNSTO远程控制是Koolcenter小宝开发的,支持http2的远程穿透控制插件。
\n 支持通过浏览器访问自定义域名访问内网设备后台、远程RDP/VNC桌面、远程文件管理等多种功能。
\n 详情请查看 https://www.ddnsto.com", - title = "DDNSTO 远程控制" +-- ========== +-- API: logs +-- ========== + +function api_logs() + local http = require "luci.http" + local sys = require "luci.sys" + local method = http.getenv("REQUEST_METHOD") or "" + + if method ~= "GET" then + method_not_allowed() + return + end + + local lines = tonumber(http.formvalue("lines") or "200") or 200 + if lines < 10 then lines = 10 end + if lines > 2000 then lines = 2000 end + + local cmd = string.format("logread 2>/dev/null | grep -E 'ddnsto|ddnstod' | tail -n %d", lines) + local out = sys.exec(cmd) or "" + local arr = {} + + for line in out:gmatch("([^\n]*)\n?") do + if line and #line > 0 then + arr[#arr + 1] = line + end + end + + write_json({ ok = true, data = { lines = arr, total = #arr } }) +end + +function action_ddnsto_dev() + local dsp = require "luci.dispatcher" + local i18n = require "luci.i18n" + local template = require "luci.template" + local ctx = dsp.context or {} + + local data = { + token = ctx.token or "", + prefix = dsp.build_url("admin", "ddnsto_dev"), + api_base= dsp.build_url(), + lang = i18n.context.lang or "zh-cn" } - return schema + + template.render("ddnsto/dev", data) end - -function ddnsto_form() - local sys = require "luci.sys" - local error = "" - local scope = "" - local success = 0 - - local result = { - data = get_data(), - schema = get_schema() - } - local response = { - error = error, - scope = scope, - success = success, - result = result, - } - luci.http.prepare_content("application/json") - luci.http.write_json(response) -end - -function ddnsto_submit() - local http = require "luci.http" - local content = http.content() - - local error = "" - local scope = "" - local success = 0 - local log = "正在验证参数...\n" - - local jsonc = require "luci.jsonc" - local json_parse = jsonc.parse - local req = json_parse(content) - - if req == nil or next(req) == nil then - error = "invalid request" - else - if req.enabled == true and isempty(req.token) then - success = -1000 - error = "请填写正确用户Token(令牌)" - end - - if req.token ~= nil and string.find(req.token, " ") then - success = -1000 - error = "令牌勿包含空格" - end - if req.index == nil or tonumber(req.index) == nil or req.index < 0 or req.index > 99 then - success = -1000 - error = "请填写正确的设备编号" - end - - if req.feat_enabled == true then - - if (req.feat_port == nil or tonumber(req.feat_port) == nil or req.feat_port == 0) then - success = -1000 - error = "请填写正确的端口" - end - if isempty(req.feat_username) then - success = -1000 - error = "请填写授权用户名" - end - if string.find(req.feat_username, " ") then - success = -1000 - error = "用户名请勿包含空格" - end - if isempty(req.feat_password) then - success = -1000 - error = "请填写授权用户密码" - end - if string.find(req.feat_password, " ") then - success = -1000 - error = "用户密码请勿包含空格" - end - if isempty(req.feat_disk_path_selected) then - success = -1000 - error = "请填写共享磁盘路径" - end - end - end - - if success == 0 then - local uci = require "luci.model.uci".cursor() - - local enabled = "0" - if req.enabled == true then - enabled = "1" - end - uci:set("ddnsto","@ddnsto[0]","enabled",enabled) - - local channel = (uci:get_first("istore", "istore", "channel") or "") - uci:set("ddnsto","@ddnsto[0]","supplier_code",channel) - - local token = "" - if req.token then - token = trim(req.token) - end - uci:set("ddnsto","@ddnsto[0]","token",token) - - local index = 0 - if req.index then - index = req.index - end - uci:set("ddnsto","@ddnsto[0]","index",index) - - local f_enabled = "0" - if req.feat_enabled == true then - f_enabled = "1" - end - uci:set("ddnsto","@ddnsto[0]","feat_enabled",f_enabled) - - local port = 3033 - if req.feat_port ~= nil then - port = req.feat_port - end - uci:set("ddnsto","@ddnsto[0]","feat_port",port) - - local username = "" - if req.feat_username ~= nil then - username = trim(req.feat_username) - end - uci:set("ddnsto","@ddnsto[0]","feat_username",username) - - local password = "" - if req.feat_password ~= nil then - password = trim(req.feat_password) - end - uci:set("ddnsto","@ddnsto[0]","feat_password",password) - - local path = "" - if req.feat_disk_path_selected ~= nil then - path = trim(req.feat_disk_path_selected) - end - uci:set("ddnsto","@ddnsto[0]","feat_disk_path_selected",path) - uci:commit("ddnsto") - end - - - if success == 0 then - log = log .. "正在保存参数...\n" - log = log .. "保存成功!\n" - log = log .. "请关闭对话框\n" - - luci.util.exec("/etc/init.d/ddnsto stop") - luci.util.exec("/etc/init.d/ddnsto start") - luci.util.exec("sleep 1") - else - log = log .. "参数错误:\n" - log = log .. "\n" - log = log .. error .."\n" - log = log .. "\n" - log = log .. "保存失败!\n" - log = log .. "请关闭对话框\n" - luci.util.exec("sleep 1") - end - - - local result = { - async = false, - log = log, - data = get_data(), - schema = get_schema() - } - local response = { - success = 0, - result = result, - } - http.prepare_content("application/json") - http.write_json(response) -end - -function ddnsto_log() - local http = require "luci.http" - local fs = require "nixio.fs" - local data = fs.readfile("/tmp/ddnsto/ddnsto-luci.log") - - http.prepare_content("text/plain;charset=utf-8") - http.write(data) -end - -function ddnsto_status() - local sys = require "luci.sys" - local status = { - running = (sys.call("pidof ddnstod >/dev/null") == 0) - } - - luci.http.prepare_content("application/json") - luci.http.write_json(status) -end - -local page_index = {"admin", "services", "ddnsto", "pages"} -function redirect_index() - luci.http.redirect(luci.dispatcher.build_url(unpack(page_index))) -end - -function ddnsto_index() - luci.template.render("ddnsto/main", {prefix=luci.dispatcher.build_url(unpack(page_index))}) -end - -function ddnsto_dev() - luci.template.render("ddnsto/main_dev", {prefix=luci.dispatcher.build_url(unpack({"admin", "services", "ddnsto", "dev"}))}) -end \ No newline at end of file diff --git a/openwrt-packages/luci-app-ddnsto/luasrc/view/ddnsto/main.htm b/openwrt-packages/luci-app-ddnsto/luasrc/view/ddnsto/main.htm index a4f08d2a0f..1248897306 100644 --- a/openwrt-packages/luci-app-ddnsto/luasrc/view/ddnsto/main.htm +++ b/openwrt-packages/luci-app-ddnsto/luasrc/view/ddnsto/main.htm @@ -1,19 +1,15 @@ -<%+header%> - -
-
+ + + + + + DDNSTO Plugin Settings Page + + - - - -<%+footer%> \ No newline at end of file + +
+ + + \ No newline at end of file diff --git a/openwrt-packages/luci-app-ddnsto/root/www/luci-static/ddnsto/index.js b/openwrt-packages/luci-app-ddnsto/root/www/luci-static/ddnsto/index.js index 895888dc7b..d52f86b9d8 100644 --- a/openwrt-packages/luci-app-ddnsto/root/www/luci-static/ddnsto/index.js +++ b/openwrt-packages/luci-app-ddnsto/root/www/luci-static/ddnsto/index.js @@ -1,13 +1,101 @@ -var ul=Object.defineProperty,cl=Object.defineProperties;var dl=Object.getOwnPropertyDescriptors;var fs=Object.getOwnPropertySymbols;var vl=Object.prototype.hasOwnProperty,hl=Object.prototype.propertyIsEnumerable;var us=(e,t,r)=>t in e?ul(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Br=(e,t)=>{for(var r in t||(t={}))vl.call(t,r)&&us(e,r,t[r]);if(fs)for(var r of fs(t))hl.call(t,r)&&us(e,r,t[r]);return e},jr=(e,t)=>cl(e,dl(t));const pl=function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))n(o);new MutationObserver(o=>{for(const s of o)if(s.type==="childList")for(const i of s.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&n(i)}).observe(document,{childList:!0,subtree:!0});function r(o){const s={};return o.integrity&&(s.integrity=o.integrity),o.referrerpolicy&&(s.referrerPolicy=o.referrerpolicy),o.crossorigin==="use-credentials"?s.credentials="include":o.crossorigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function n(o){if(o.ep)return;o.ep=!0;const s=r(o);fetch(o.href,s)}};pl();function dr(e,t){const r=Object.create(null),n=e.split(",");for(let o=0;o!!r[o.toLowerCase()]:o=>!!r[o]}const gl="Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt",ml=dr(gl),yl="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",El=dr(yl);function si(e){return!!e||e===""}function Dn(e){if(q(e)){const t={};for(let r=0;r{if(r){const n=r.split(Sl);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function Fn(e){let t="";if(Tt(e))t=e;else if(q(e))for(let r=0;rEe(r,t))}const kn=e=>Tt(e)?e:e==null?"":q(e)||Rt(e)&&(e.toString===ai||!nt(e.toString))?JSON.stringify(e,ii,2):String(e),ii=(e,t)=>t&&t.__v_isRef?ii(e,t.value):Ze(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((r,[n,o])=>(r[`${n} =>`]=o,r),{})}:$e(t)?{[`Set(${t.size})`]:[...t.values()]}:Rt(t)&&!q(t)&&!li(t)?String(t):t,bt={},Xe=[],kt=()=>{},Al=()=>!1,Rl=/^on[^a-z]/,Mn=e=>Rl.test(e),yo=e=>e.startsWith("onUpdate:"),At=Object.assign,Eo=(e,t)=>{const r=e.indexOf(t);r>-1&&e.splice(r,1)},Cl=Object.prototype.hasOwnProperty,mt=(e,t)=>Cl.call(e,t),q=Array.isArray,Ze=e=>hr(e)==="[object Map]",$e=e=>hr(e)==="[object Set]",cs=e=>e instanceof Date,nt=e=>typeof e=="function",Tt=e=>typeof e=="string",xo=e=>typeof e=="symbol",Rt=e=>e!==null&&typeof e=="object",So=e=>Rt(e)&&nt(e.then)&&nt(e.catch),ai=Object.prototype.toString,hr=e=>ai.call(e),Il=e=>hr(e).slice(8,-1),li=e=>hr(e)==="[object Object]",bo=e=>Tt(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,gn=dr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),pr=e=>{const t=Object.create(null);return r=>t[r]||(t[r]=e(r))},Pl=/-(\w)/g,Gt=pr(e=>e.replace(Pl,(t,r)=>r?r.toUpperCase():"")),Nl=/\B([A-Z])/g,te=pr(e=>e.replace(Nl,"-$1").toLowerCase()),Bn=pr(e=>e.charAt(0).toUpperCase()+e.slice(1)),mn=pr(e=>e?`on${Bn(e)}`:""),Rn=(e,t)=>!Object.is(e,t),Qe=(e,t)=>{for(let r=0;r{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:r})},xe=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let ds;const Dl=()=>ds||(ds=typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:typeof window!="undefined"?window:typeof global!="undefined"?global:{});let Ht;class Oo{constructor(t=!1){this.active=!0,this.effects=[],this.cleanups=[],!t&&Ht&&(this.parent=Ht,this.index=(Ht.scopes||(Ht.scopes=[])).push(this)-1)}run(t){if(this.active){const r=Ht;try{return Ht=this,t()}finally{Ht=r}}}on(){Ht=this}off(){Ht=this.parent}stop(t){if(this.active){let r,n;for(r=0,n=this.effects.length;r{const t=new Set(e);return t.w=0,t.n=0,t},ui=e=>(e.w&Se)>0,ci=e=>(e.n&Se)>0,jl=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let r=0;for(let n=0;n{(u==="length"||u>=n)&&a.push(l)});else switch(r!==void 0&&a.push(i.get(r)),t){case"add":q(e)?bo(r)&&a.push(i.get("length")):(a.push(i.get(Fe)),Ze(e)&&a.push(i.get(Qr)));break;case"delete":q(e)||(a.push(i.get(Fe)),Ze(e)&&a.push(i.get(Qr)));break;case"set":Ze(e)&&a.push(i.get(Fe));break}if(a.length===1)a[0]&&kr(a[0]);else{const l=[];for(const u of a)u&&l.push(...u);kr(To(l))}}function kr(e,t){for(const r of q(e)?e:[...e])(r!==Qt||r.allowRecurse)&&(r.scheduler?r.scheduler():r.run())}const Kl=dr("__proto__,__v_isRef,__isVue"),hi=new Set(Object.getOwnPropertyNames(Symbol).map(e=>Symbol[e]).filter(xo)),Vl=gr(),Hl=gr(!1,!0),Wl=gr(!0),Yl=gr(!0,!0),hs=wl();function wl(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...r){const n=pt(this);for(let s=0,i=this.length;s{e[t]=function(...r){Ue();const n=pt(this)[t].apply(this,r);return Ke(),n}}),e}function gr(e=!1,t=!1){return function(n,o,s){if(o==="__v_isReactive")return!e;if(o==="__v_isReadonly")return e;if(o==="__v_isShallow")return t;if(o==="__v_raw"&&s===(e?t?Si:xi:t?Ei:yi).get(n))return n;const i=q(n);if(!e&&i&&mt(hs,o))return Reflect.get(hs,o,s);const a=Reflect.get(n,o,s);return(xo(o)?hi.has(o):Kl(o))||(e||zt(n,"get",o),t)?a:Ct(a)?!i||!bo(o)?a.value:a:Rt(a)?e?Ro(a):Ln(a):a}}const Gl=pi(),zl=pi(!0);function pi(e=!1){return function(r,n,o,s){let i=r[n];if(qe(i)&&Ct(i)&&!Ct(o))return!1;if(!e&&!qe(o)&&(Co(o)||(o=pt(o),i=pt(i)),!q(r)&&Ct(i)&&!Ct(o)))return i.value=o,!0;const a=q(r)&&bo(n)?Number(n)e,mr=e=>Reflect.getPrototypeOf(e);function Hn(e,t,r=!1,n=!1){e=e.__v_raw;const o=pt(e),s=pt(t);t!==s&&!r&&zt(o,"get",t),!r&&zt(o,"get",s);const{has:i}=mr(o),a=n?Ao:r?No:Cn;if(i.call(o,t))return a(e.get(t));if(i.call(o,s))return a(e.get(s));e!==o&&e.get(t)}function Wn(e,t=!1){const r=this.__v_raw,n=pt(r),o=pt(e);return e!==o&&!t&&zt(n,"has",e),!t&&zt(n,"has",o),e===o?r.has(e):r.has(e)||r.has(o)}function Yn(e,t=!1){return e=e.__v_raw,!t&&zt(pt(e),"iterate",Fe),Reflect.get(e,"size",e)}function ps(e){e=pt(e);const t=pt(this);return mr(t).has.call(t,e)||(t.add(e),ae(t,"add",e,e)),this}function gs(e,t){t=pt(t);const r=pt(this),{has:n,get:o}=mr(r);let s=n.call(r,e);s||(e=pt(e),s=n.call(r,e));const i=o.call(r,e);return r.set(e,t),s?Rn(t,i)&&ae(r,"set",e,t):ae(r,"add",e,t),this}function ms(e){const t=pt(this),{has:r,get:n}=mr(t);let o=r.call(t,e);o||(e=pt(e),o=r.call(t,e)),n&&n.call(t,e);const s=t.delete(e);return o&&ae(t,"delete",e,void 0),s}function ys(){const e=pt(this),t=e.size!==0,r=e.clear();return t&&ae(e,"clear",void 0,void 0),r}function wn(e,t){return function(n,o){const s=this,i=s.__v_raw,a=pt(i),l=t?Ao:e?No:Cn;return!e&&zt(a,"iterate",Fe),i.forEach((u,f)=>n.call(o,l(u),l(f),s))}}function Gn(e,t,r){return function(...n){const o=this.__v_raw,s=pt(o),i=Ze(s),a=e==="entries"||e===Symbol.iterator&&i,l=e==="keys"&&i,u=o[e](...n),f=r?Ao:t?No:Cn;return!t&&zt(s,"iterate",l?Qr:Fe),{next(){const{value:c,done:d}=u.next();return d?{value:c,done:d}:{value:a?[f(c[0]),f(c[1])]:f(c),done:d}},[Symbol.iterator](){return this}}}}function ce(e){return function(...t){return e==="delete"?!1:this}}function ql(){const e={get(s){return Hn(this,s)},get size(){return Yn(this)},has:Wn,add:ps,set:gs,delete:ms,clear:ys,forEach:wn(!1,!1)},t={get(s){return Hn(this,s,!1,!0)},get size(){return Yn(this)},has:Wn,add:ps,set:gs,delete:ms,clear:ys,forEach:wn(!1,!0)},r={get(s){return Hn(this,s,!0)},get size(){return Yn(this,!0)},has(s){return Wn.call(this,s,!0)},add:ce("add"),set:ce("set"),delete:ce("delete"),clear:ce("clear"),forEach:wn(!0,!1)},n={get(s){return Hn(this,s,!0,!0)},get size(){return Yn(this,!0)},has(s){return Wn.call(this,s,!0)},add:ce("add"),set:ce("set"),delete:ce("delete"),clear:ce("clear"),forEach:wn(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(s=>{e[s]=Gn(s,!1,!1),r[s]=Gn(s,!0,!1),t[s]=Gn(s,!1,!0),n[s]=Gn(s,!0,!0)}),[e,r,t,n]}const[_l,tf,ef,nf]=ql();function yr(e,t){const r=t?e?nf:ef:e?tf:_l;return(n,o,s)=>o==="__v_isReactive"?!e:o==="__v_isReadonly"?e:o==="__v_raw"?n:Reflect.get(mt(r,o)&&o in n?r:n,o,s)}const rf={get:yr(!1,!1)},of={get:yr(!1,!0)},sf={get:yr(!0,!1)},af={get:yr(!0,!0)},yi=new WeakMap,Ei=new WeakMap,xi=new WeakMap,Si=new WeakMap;function lf(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function ff(e){return e.__v_skip||!Object.isExtensible(e)?0:lf(Il(e))}function Ln(e){return qe(e)?e:Er(e,!1,gi,rf,yi)}function bi(e){return Er(e,!1,Ql,of,Ei)}function Ro(e){return Er(e,!0,mi,sf,xi)}function uf(e){return Er(e,!0,kl,af,Si)}function Er(e,t,r,n,o){if(!Rt(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const s=o.get(e);if(s)return s;const i=ff(e);if(i===0)return e;const a=new Proxy(e,i===2?n:r);return o.set(e,a),a}function Me(e){return qe(e)?Me(e.__v_raw):!!(e&&e.__v_isReactive)}function qe(e){return!!(e&&e.__v_isReadonly)}function Co(e){return!!(e&&e.__v_isShallow)}function Io(e){return Me(e)||qe(e)}function pt(e){const t=e&&e.__v_raw;return t?pt(t):e}function Po(e){return nr(e,"__v_skip",!0),e}const Cn=e=>Rt(e)?Ln(e):e,No=e=>Rt(e)?Ro(e):e;function Do(e){me&&Qt&&(e=pt(e),vi(e.dep||(e.dep=To())))}function xr(e,t){e=pt(e),e.dep&&kr(e.dep)}function Ct(e){return!!(e&&e.__v_isRef===!0)}function Be(e){return Oi(e,!1)}function cf(e){return Oi(e,!0)}function Oi(e,t){return Ct(e)?e:new df(e,t)}class df{constructor(t,r){this.__v_isShallow=r,this.dep=void 0,this.__v_isRef=!0,this._rawValue=r?t:pt(t),this._value=r?t:Cn(t)}get value(){return Do(this),this._value}set value(t){t=this.__v_isShallow?t:pt(t),Rn(t,this._rawValue)&&(this._rawValue=t,this._value=this.__v_isShallow?t:Cn(t),xr(this))}}function vf(e){xr(e)}function Ti(e){return Ct(e)?e.value:e}const hf={get:(e,t,r)=>Ti(Reflect.get(e,t,r)),set:(e,t,r,n)=>{const o=e[t];return Ct(o)&&!Ct(r)?(o.value=r,!0):Reflect.set(e,t,r,n)}};function Fo(e){return Me(e)?e:new Proxy(e,hf)}class pf{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:r,set:n}=t(()=>Do(this),()=>xr(this));this._get=r,this._set=n}get value(){return this._get()}set value(t){this._set(t)}}function gf(e){return new pf(e)}function Ai(e){const t=q(e)?new Array(e.length):{};for(const r in e)t[r]=Ri(e,r);return t}class mf{constructor(t,r,n){this._object=t,this._key=r,this._defaultValue=n,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}}function Ri(e,t,r){const n=e[t];return Ct(n)?n:new mf(e,t,r)}class yf{constructor(t,r,n,o){this._setter=r,this.dep=void 0,this.__v_isRef=!0,this._dirty=!0,this.effect=new jn(t,()=>{this._dirty||(this._dirty=!0,xr(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!o,this.__v_isReadonly=n}get value(){const t=pt(this);return Do(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}function Ef(e,t,r=!1){let n,o;const s=nt(e);return s?(n=e,o=kt):(n=e.get,o=e.set),new yf(n,o,s||!o,r)}const yn=[];function Ci(e,...t){Ue();const r=yn.length?yn[yn.length-1].component:null,n=r&&r.appContext.config.warnHandler,o=xf();if(n)ee(n,r,11,[e+t.join(""),r&&r.proxy,o.map(({vnode:s})=>`at <${ba(r,s.type)}>`).join(` -`),o]);else{const s=[`[Vue warn]: ${e}`,...t];o.length&&s.push(` -`,...Sf(o)),console.warn(...s)}Ke()}function xf(){let e=yn[yn.length-1];if(!e)return[];const t=[];for(;e;){const r=t[0];r&&r.vnode===e?r.recurseCount++:t.push({vnode:e,recurseCount:0});const n=e.component&&e.component.parent;e=n&&n.vnode}return t}function Sf(e){const t=[];return e.forEach((r,n)=>{t.push(...n===0?[]:[` -`],...bf(r))}),t}function bf({vnode:e,recurseCount:t}){const r=t>0?`... (${t} recursive calls)`:"",n=e.component?e.component.parent==null:!1,o=` at <${ba(e.component,e.type,n)}`,s=">"+r;return e.props?[o,...Of(e.props),s]:[o+s]}function Of(e){const t=[],r=Object.keys(e);return r.slice(0,3).forEach(n=>{t.push(...Ii(n,e[n]))}),r.length>3&&t.push(" ..."),t}function Ii(e,t,r){return Tt(t)?(t=JSON.stringify(t),r?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?r?t:[`${e}=${t}`]:Ct(t)?(t=Ii(e,pt(t.value),!0),r?t:[`${e}=Ref<`,t,">"]):nt(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=pt(t),r?t:[`${e}=`,t])}function ee(e,t,r,n){let o;try{o=n?e(...n):e()}catch(s){Ve(s,t,r)}return o}function wt(e,t,r,n){if(nt(e)){const s=ee(e,t,r,n);return s&&So(s)&&s.catch(i=>{Ve(i,t,r)}),s}const o=[];for(let s=0;s>>1;In(Yt[n])se&&Yt.splice(t,1)}function Di(e,t,r,n){q(e)?r.push(...e):(!t||!t.includes(e,e.allowRecurse?n+1:n))&&r.push(e),Ni()}function Cf(e){Di(e,hn,En,Ge)}function Lo(e){Di(e,he,xn,ze)}function $o(e,t=null){if(En.length){for(_r=t,hn=[...new Set(En)],En.length=0,Ge=0;GeIn(r)-In(n)),ze=0;zee.id==null?1/0:e.id;function Fi(e){qr=!1,rr=!0,$o(e),Yt.sort((r,n)=>In(r)-In(n));const t=kt;try{for(se=0;seJe.emit(o,...s)),zn=[]):typeof window!="undefined"&&window.HTMLElement&&!(!((n=(r=window.navigator)===null||r===void 0?void 0:r.userAgent)===null||n===void 0)&&n.includes("jsdom"))?((t.__VUE_DEVTOOLS_HOOK_REPLAY__=t.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push(s=>{Mi(s,t)}),setTimeout(()=>{Je||(t.__VUE_DEVTOOLS_HOOK_REPLAY__=null,zn=[])},3e3)):zn=[]}function If(e,t,...r){if(e.isUnmounted)return;const n=e.vnode.props||bt;let o=r;const s=t.startsWith("update:"),i=s&&t.slice(7);if(i&&i in n){const f=`${i==="modelValue"?"model":i}Modifiers`,{number:c,trim:d}=n[f]||bt;d?o=r.map(v=>v.trim()):c&&(o=r.map(xe))}let a,l=n[a=mn(t)]||n[a=mn(Gt(t))];!l&&s&&(l=n[a=mn(te(t))]),l&&wt(l,e,6,o);const u=n[a+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,wt(u,e,6,o)}}function Bi(e,t,r=!1){const n=t.emitsCache,o=n.get(e);if(o!==void 0)return o;const s=e.emits;let i={},a=!1;if(!nt(e)){const l=u=>{const f=Bi(u,t,!0);f&&(a=!0,At(i,f))};!r&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!s&&!a?(n.set(e,null),null):(q(s)?s.forEach(l=>i[l]=null):At(i,s),n.set(e,i),i)}function Sr(e,t){return!e||!Mn(t)?!1:(t=t.slice(2).replace(/Once$/,""),mt(e,t[0].toLowerCase()+t.slice(1))||mt(e,te(t))||mt(e,t))}let jt=null,br=null;function Pn(e){const t=jt;return jt=e,br=e&&e.type.__scopeId||null,t}function ji(e){br=e}function Li(){br=null}const Pf=e=>Uo;function Uo(e,t=jt,r){if(!t||e._n)return e;const n=(...o)=>{n._d&&oo(-1);const s=Pn(t),i=e(...o);return Pn(s),n._d&&oo(1),i};return n._n=!0,n._c=!0,n._d=!0,n}function qn(e){const{type:t,vnode:r,proxy:n,withProxy:o,props:s,propsOptions:[i],slots:a,attrs:l,emit:u,render:f,renderCache:c,data:d,setupState:v,ctx:g,inheritAttrs:y}=e;let m,p;const h=Pn(e);try{if(r.shapeFlag&4){const A=o||n;m=Wt(f.call(A,A,c,s,v,d,g)),p=l}else{const A=t;m=Wt(A.length>1?A(s,{attrs:l,slots:a,emit:u}):A(s,null)),p=t.props?l:Df(l)}}catch(A){Tn.length=0,Ve(A,e,1),m=Ot(Lt)}let x=m;if(p&&y!==!1){const A=Object.keys(p),{shapeFlag:I}=x;A.length&&I&7&&(i&&A.some(yo)&&(p=Ff(p,i)),x=le(x,p))}return r.dirs&&(x.dirs=x.dirs?x.dirs.concat(r.dirs):r.dirs),r.transition&&(x.transition=r.transition),m=x,Pn(h),m}function Nf(e){let t;for(let r=0;r{let t;for(const r in e)(r==="class"||r==="style"||Mn(r))&&((t||(t={}))[r]=e[r]);return t},Ff=(e,t)=>{const r={};for(const n in e)(!yo(n)||!(n.slice(9)in t))&&(r[n]=e[n]);return r};function Mf(e,t,r){const{props:n,children:o,component:s}=e,{props:i,children:a,patchFlag:l}=t,u=s.emitsOptions;if(t.dirs||t.transition)return!0;if(r&&l>=0){if(l&1024)return!0;if(l&16)return n?Es(n,i,u):!!i;if(l&8){const f=t.dynamicProps;for(let c=0;ce.__isSuspense,jf={name:"Suspense",__isSuspense:!0,process(e,t,r,n,o,s,i,a,l,u){e==null?$f(t,r,n,o,s,i,a,l,u):Uf(e,t,r,n,o,i,a,l,u)},hydrate:Kf,create:Vo,normalize:Vf},Lf=jf;function Nn(e,t){const r=e.props&&e.props[t];nt(r)&&r()}function $f(e,t,r,n,o,s,i,a,l){const{p:u,o:{createElement:f}}=l,c=f("div"),d=e.suspense=Vo(e,o,n,t,c,r,s,i,a,l);u(null,d.pendingBranch=e.ssContent,c,null,n,d,s,i),d.deps>0?(Nn(e,"onPending"),Nn(e,"onFallback"),u(null,e.ssFallback,t,r,n,null,s,i),ke(d,e.ssFallback)):d.resolve()}function Uf(e,t,r,n,o,s,i,a,{p:l,um:u,o:{createElement:f}}){const c=t.suspense=e.suspense;c.vnode=t,t.el=e.el;const d=t.ssContent,v=t.ssFallback,{activeBranch:g,pendingBranch:y,isInFallback:m,isHydrating:p}=c;if(y)c.pendingBranch=d,_t(d,y)?(l(y,d,c.hiddenContainer,null,o,c,s,i,a),c.deps<=0?c.resolve():m&&(l(g,v,r,n,o,null,s,i,a),ke(c,v))):(c.pendingId++,p?(c.isHydrating=!1,c.activeBranch=y):u(y,o,c),c.deps=0,c.effects.length=0,c.hiddenContainer=f("div"),m?(l(null,d,c.hiddenContainer,null,o,c,s,i,a),c.deps<=0?c.resolve():(l(g,v,r,n,o,null,s,i,a),ke(c,v))):g&&_t(d,g)?(l(g,d,r,n,o,c,s,i,a),c.resolve(!0)):(l(null,d,c.hiddenContainer,null,o,c,s,i,a),c.deps<=0&&c.resolve()));else if(g&&_t(d,g))l(g,d,r,n,o,c,s,i,a),ke(c,d);else if(Nn(t,"onPending"),c.pendingBranch=d,c.pendingId++,l(null,d,c.hiddenContainer,null,o,c,s,i,a),c.deps<=0)c.resolve();else{const{timeout:h,pendingId:x}=c;h>0?setTimeout(()=>{c.pendingId===x&&c.fallback(v)},h):h===0&&c.fallback(v)}}function Vo(e,t,r,n,o,s,i,a,l,u,f=!1){const{p:c,m:d,um:v,n:g,o:{parentNode:y,remove:m}}=u,p=xe(e.props&&e.props.timeout),h={vnode:e,parent:t,parentComponent:r,isSVG:i,container:n,hiddenContainer:o,anchor:s,deps:0,pendingId:0,timeout:typeof p=="number"?p:-1,activeBranch:null,pendingBranch:null,isInFallback:!0,isHydrating:f,isUnmounted:!1,effects:[],resolve(x=!1){const{vnode:A,activeBranch:I,pendingBranch:b,pendingId:O,effects:S,parentComponent:C,container:T}=h;if(h.isHydrating)h.isHydrating=!1;else if(!x){const F=I&&b.transition&&b.transition.mode==="out-in";F&&(I.transition.afterLeave=()=>{O===h.pendingId&&d(b,T,H,0)});let{anchor:H}=h;I&&(H=g(I),v(I,C,h,!0)),F||d(b,T,H,0)}ke(h,b),h.pendingBranch=null,h.isInFallback=!1;let N=h.parent,P=!1;for(;N;){if(N.pendingBranch){N.effects.push(...S),P=!0;break}N=N.parent}P||Lo(S),h.effects=[],Nn(A,"onResolve")},fallback(x){if(!h.pendingBranch)return;const{vnode:A,activeBranch:I,parentComponent:b,container:O,isSVG:S}=h;Nn(A,"onFallback");const C=g(I),T=()=>{!h.isInFallback||(c(null,x,O,C,b,null,S,a,l),ke(h,x))},N=x.transition&&x.transition.mode==="out-in";N&&(I.transition.afterLeave=T),h.isInFallback=!0,v(I,b,null,!0),N||T()},move(x,A,I){h.activeBranch&&d(h.activeBranch,x,A,I),h.container=x},next(){return h.activeBranch&&g(h.activeBranch)},registerDep(x,A){const I=!!h.pendingBranch;I&&h.deps++;const b=x.vnode.el;x.asyncDep.catch(O=>{Ve(O,x,0)}).then(O=>{if(x.isUnmounted||h.isUnmounted||h.pendingId!==x.suspenseId)return;x.asyncResolved=!0;const{vnode:S}=x;lo(x,O,!1),b&&(S.el=b);const C=!b&&x.subTree.el;A(x,S,y(b||x.subTree.el),b?null:g(x.subTree),h,i,l),C&&m(C),Ko(x,S.el),I&&--h.deps===0&&h.resolve()})},unmount(x,A){h.isUnmounted=!0,h.activeBranch&&v(h.activeBranch,r,x,A),h.pendingBranch&&v(h.pendingBranch,r,x,A)}};return h}function Kf(e,t,r,n,o,s,i,a,l){const u=t.suspense=Vo(t,n,r,e.parentNode,document.createElement("div"),null,o,s,i,a,!0),f=l(e,u.pendingBranch=t.ssContent,r,u,s,i);return u.deps===0&&u.resolve(),f}function Vf(e){const{shapeFlag:t,children:r}=e,n=t&32;e.ssContent=xs(n?r.default:r),e.ssFallback=n?xs(r.fallback):Ot(Lt)}function xs(e){let t;if(nt(e)){const r=nn&&e._c;r&&(e._d=!1,be()),e=e(),r&&(e._d=!0,t=ne,ua())}return q(e)&&(e=Nf(e)),e=Wt(e),t&&!e.dynamicChildren&&(e.dynamicChildren=t.filter(r=>r!==e)),e}function $i(e,t){t&&t.pendingBranch?q(e)?t.effects.push(...e):t.effects.push(e):Lo(e)}function ke(e,t){e.activeBranch=t;const{vnode:r,parentComponent:n}=e,o=r.el=t.el;n&&n.subTree===r&&(n.vnode.el=o,Ko(n,o))}function Ui(e,t){if(It){let r=It.provides;const n=It.parent&&It.parent.provides;n===r&&(r=It.provides=Object.create(n)),r[e]=t}}function Sn(e,t,r=!1){const n=It||jt;if(n){const o=n.parent==null?n.vnode.appContext&&n.vnode.appContext.provides:n.parent.provides;if(o&&e in o)return o[e];if(arguments.length>1)return r&&nt(t)?t.call(n.proxy):t}}function Hf(e,t){return $n(e,null,t)}function Ki(e,t){return $n(e,null,{flush:"post"})}function Wf(e,t){return $n(e,null,{flush:"sync"})}const Ss={};function bn(e,t,r){return $n(e,t,r)}function $n(e,t,{immediate:r,deep:n,flush:o,onTrack:s,onTrigger:i}=bt){const a=It;let l,u=!1,f=!1;if(Ct(e)?(l=()=>e.value,u=Co(e)):Me(e)?(l=()=>e,n=!0):q(e)?(f=!0,u=e.some(Me),l=()=>e.map(p=>{if(Ct(p))return p.value;if(Me(p))return De(p);if(nt(p))return ee(p,a,2)})):nt(e)?t?l=()=>ee(e,a,2):l=()=>{if(!(a&&a.isUnmounted))return c&&c(),wt(e,a,3,[d])}:l=kt,t&&n){const p=l;l=()=>De(p())}let c,d=p=>{c=m.onStop=()=>{ee(p,a,4)}};if(rn)return d=kt,t?r&&wt(t,a,3,[l(),f?[]:void 0,d]):l(),kt;let v=f?[]:Ss;const g=()=>{if(!!m.active)if(t){const p=m.run();(n||u||(f?p.some((h,x)=>Rn(h,v[x])):Rn(p,v)))&&(c&&c(),wt(t,a,3,[p,v===Ss?void 0:v,d]),v=p)}else m.run()};g.allowRecurse=!!t;let y;o==="sync"?y=g:o==="post"?y=()=>Dt(g,a&&a.suspense):y=()=>{!a||a.isMounted?Cf(g):g()};const m=new jn(l,y);return t?r?g():v=m.run():o==="post"?Dt(m.run.bind(m),a&&a.suspense):m.run(),()=>{m.stop(),a&&a.scope&&Eo(a.scope.effects,m)}}function Yf(e,t,r){const n=this.proxy,o=Tt(e)?e.includes(".")?Vi(n,e):()=>n[e]:e.bind(n,n);let s;nt(t)?s=t:(s=t.handler,r=t);const i=It;Te(this);const a=$n(o,s.bind(n),r);return i?Te(i):ye(),a}function Vi(e,t){const r=t.split(".");return()=>{let n=e;for(let o=0;o{De(r,t)});else if(li(e))for(const r in e)De(e[r],t);return e}function Ho(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return He(()=>{e.isMounted=!0}),Kn(()=>{e.isUnmounting=!0}),e}const Jt=[Function,Array],wf={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Jt,onEnter:Jt,onAfterEnter:Jt,onEnterCancelled:Jt,onBeforeLeave:Jt,onLeave:Jt,onAfterLeave:Jt,onLeaveCancelled:Jt,onBeforeAppear:Jt,onAppear:Jt,onAfterAppear:Jt,onAppearCancelled:Jt},setup(e,{slots:t}){const r=ue(),n=Ho();let o;return()=>{const s=t.default&&Or(t.default(),!0);if(!s||!s.length)return;let i=s[0];if(s.length>1){for(const y of s)if(y.type!==Lt){i=y;break}}const a=pt(e),{mode:l}=a;if(n.isLeaving)return Lr(i);const u=bs(i);if(!u)return Lr(i);const f=_e(u,a,n,r);Le(u,f);const c=r.subTree,d=c&&bs(c);let v=!1;const{getTransitionKey:g}=u.type;if(g){const y=g();o===void 0?o=y:y!==o&&(o=y,v=!0)}if(d&&d.type!==Lt&&(!_t(u,d)||v)){const y=_e(d,a,n,r);if(Le(d,y),l==="out-in")return n.isLeaving=!0,y.afterLeave=()=>{n.isLeaving=!1,r.update()},Lr(i);l==="in-out"&&u.type!==Lt&&(y.delayLeave=(m,p,h)=>{const x=Hi(n,d);x[String(d.key)]=d,m._leaveCb=()=>{p(),m._leaveCb=void 0,delete f.delayedLeave},f.delayedLeave=h})}return i}}},Wo=wf;function Hi(e,t){const{leavingVNodes:r}=e;let n=r.get(t.type);return n||(n=Object.create(null),r.set(t.type,n)),n}function _e(e,t,r,n){const{appear:o,mode:s,persisted:i=!1,onBeforeEnter:a,onEnter:l,onAfterEnter:u,onEnterCancelled:f,onBeforeLeave:c,onLeave:d,onAfterLeave:v,onLeaveCancelled:g,onBeforeAppear:y,onAppear:m,onAfterAppear:p,onAppearCancelled:h}=t,x=String(e.key),A=Hi(r,e),I=(O,S)=>{O&&wt(O,n,9,S)},b={mode:s,persisted:i,beforeEnter(O){let S=a;if(!r.isMounted)if(o)S=y||a;else return;O._leaveCb&&O._leaveCb(!0);const C=A[x];C&&_t(e,C)&&C.el._leaveCb&&C.el._leaveCb(),I(S,[O])},enter(O){let S=l,C=u,T=f;if(!r.isMounted)if(o)S=m||l,C=p||u,T=h||f;else return;let N=!1;const P=O._enterCb=F=>{N||(N=!0,F?I(T,[O]):I(C,[O]),b.delayedLeave&&b.delayedLeave(),O._enterCb=void 0)};S?(S(O,P),S.length<=1&&P()):P()},leave(O,S){const C=String(e.key);if(O._enterCb&&O._enterCb(!0),r.isUnmounting)return S();I(c,[O]);let T=!1;const N=O._leaveCb=P=>{T||(T=!0,S(),P?I(g,[O]):I(v,[O]),O._leaveCb=void 0,A[C]===e&&delete A[C])};A[C]=e,d?(d(O,N),d.length<=1&&N()):N()},clone(O){return _e(O,t,r,n)}};return b}function Lr(e){if(Un(e))return e=le(e),e.children=null,e}function bs(e){return Un(e)?e.children?e.children[0]:void 0:e}function Le(e,t){e.shapeFlag&6&&e.component?Le(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Or(e,t=!1,r){let n=[],o=0;for(let s=0;s1)for(let s=0;s!!e.type.__asyncLoader;function Gf(e){nt(e)&&(e={loader:e});const{loader:t,loadingComponent:r,errorComponent:n,delay:o=200,timeout:s,suspensible:i=!0,onError:a}=e;let l=null,u,f=0;const c=()=>(f++,l=null,d()),d=()=>{let v;return l||(v=l=t().catch(g=>{if(g=g instanceof Error?g:new Error(String(g)),a)return new Promise((y,m)=>{a(g,()=>y(c()),()=>m(g),f+1)});throw g}).then(g=>v!==l&&l?l:(g&&(g.__esModule||g[Symbol.toStringTag]==="Module")&&(g=g.default),u=g,g)))};return Yo({name:"AsyncComponentWrapper",__asyncLoader:d,get __asyncResolved(){return u},setup(){const v=It;if(u)return()=>$r(u,v);const g=h=>{l=null,Ve(h,v,13,!n)};if(i&&v.suspense||rn)return d().then(h=>()=>$r(h,v)).catch(h=>(g(h),()=>n?Ot(n,{error:h}):null));const y=Be(!1),m=Be(),p=Be(!!o);return o&&setTimeout(()=>{p.value=!1},o),s!=null&&setTimeout(()=>{if(!y.value&&!m.value){const h=new Error(`Async component timed out after ${s}ms.`);g(h),m.value=h}},s),d().then(()=>{y.value=!0,v.parent&&Un(v.parent.vnode)&&jo(v.parent.update)}).catch(h=>{g(h),m.value=h}),()=>{if(y.value&&u)return $r(u,v);if(m.value&&n)return Ot(n,{error:m.value});if(r&&!p.value)return Ot(r)}}})}function $r(e,{vnode:{ref:t,props:r,children:n}}){const o=Ot(e,r,n);return o.ref=t,o}const Un=e=>e.type.__isKeepAlive,zf={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){const r=ue(),n=r.ctx;if(!n.renderer)return t.default;const o=new Map,s=new Set;let i=null;const a=r.suspense,{renderer:{p:l,m:u,um:f,o:{createElement:c}}}=n,d=c("div");n.activate=(h,x,A,I,b)=>{const O=h.component;u(h,x,A,0,a),l(O.vnode,h,x,A,O,a,I,h.slotScopeIds,b),Dt(()=>{O.isDeactivated=!1,O.a&&Qe(O.a);const S=h.props&&h.props.onVnodeMounted;S&&Ut(S,O.parent,h)},a)},n.deactivate=h=>{const x=h.component;u(h,d,null,1,a),Dt(()=>{x.da&&Qe(x.da);const A=h.props&&h.props.onVnodeUnmounted;A&&Ut(A,x.parent,h),x.isDeactivated=!0},a)};function v(h){Ur(h),f(h,r,a,!0)}function g(h){o.forEach((x,A)=>{const I=fr(x.type);I&&(!h||!h(I))&&y(A)})}function y(h){const x=o.get(h);!i||x.type!==i.type?v(x):i&&Ur(i),o.delete(h),s.delete(h)}bn(()=>[e.include,e.exclude],([h,x])=>{h&&g(A=>pn(h,A)),x&&g(A=>!pn(x,A))},{flush:"post",deep:!0});let m=null;const p=()=>{m!=null&&o.set(m,Kr(r.subTree))};return He(p),Ar(p),Kn(()=>{o.forEach(h=>{const{subTree:x,suspense:A}=r,I=Kr(x);if(h.type===I.type){Ur(I);const b=I.component.da;b&&Dt(b,A);return}v(h)})}),()=>{if(m=null,!t.default)return null;const h=t.default(),x=h[0];if(h.length>1)return i=null,h;if(!Oe(x)||!(x.shapeFlag&4)&&!(x.shapeFlag&128))return i=null,x;let A=Kr(x);const I=A.type,b=fr(tn(A)?A.type.__asyncResolved||{}:I),{include:O,exclude:S,max:C}=e;if(O&&(!b||!pn(O,b))||S&&b&&pn(S,b))return i=A,x;const T=A.key==null?I:A.key,N=o.get(T);return A.el&&(A=le(A),x.shapeFlag&128&&(x.ssContent=A)),m=T,N?(A.el=N.el,A.component=N.component,A.transition&&Le(A,A.transition),A.shapeFlag|=512,s.delete(T),s.add(T)):(s.add(T),C&&s.size>parseInt(C,10)&&y(s.values().next().value)),A.shapeFlag|=256,i=A,x}}},Jf=zf;function pn(e,t){return q(e)?e.some(r=>pn(r,t)):Tt(e)?e.split(",").includes(t):e.test?e.test(t):!1}function Wi(e,t){wi(e,"a",t)}function Yi(e,t){wi(e,"da",t)}function wi(e,t,r=It){const n=e.__wdc||(e.__wdc=()=>{let o=r;for(;o;){if(o.isDeactivated)return;o=o.parent}return e()});if(Tr(t,n,r),r){let o=r.parent;for(;o&&o.parent;)Un(o.parent.vnode)&&Xf(n,t,r,o),o=o.parent}}function Xf(e,t,r,n){const o=Tr(t,e,n,!0);Rr(()=>{Eo(n[t],o)},r)}function Ur(e){let t=e.shapeFlag;t&256&&(t-=256),t&512&&(t-=512),e.shapeFlag=t}function Kr(e){return e.shapeFlag&128?e.ssContent:e}function Tr(e,t,r=It,n=!1){if(r){const o=r[e]||(r[e]=[]),s=t.__weh||(t.__weh=(...i)=>{if(r.isUnmounted)return;Ue(),Te(r);const a=wt(t,r,e,i);return ye(),Ke(),a});return n?o.unshift(s):o.push(s),s}}const fe=e=>(t,r=It)=>(!rn||e==="sp")&&Tr(e,t,r),Gi=fe("bm"),He=fe("m"),zi=fe("bu"),Ar=fe("u"),Kn=fe("bum"),Rr=fe("um"),Ji=fe("sp"),Xi=fe("rtg"),Zi=fe("rtc");function Qi(e,t=It){Tr("ec",e,t)}let to=!0;function Zf(e){const t=qi(e),r=e.proxy,n=e.ctx;to=!1,t.beforeCreate&&Os(t.beforeCreate,e,"bc");const{data:o,computed:s,methods:i,watch:a,provide:l,inject:u,created:f,beforeMount:c,mounted:d,beforeUpdate:v,updated:g,activated:y,deactivated:m,beforeDestroy:p,beforeUnmount:h,destroyed:x,unmounted:A,render:I,renderTracked:b,renderTriggered:O,errorCaptured:S,serverPrefetch:C,expose:T,inheritAttrs:N,components:P,directives:F,filters:H}=t;if(u&&Qf(u,n,null,e.appContext.config.unwrapInjectedRef),i)for(const M in i){const j=i[M];nt(j)&&(n[M]=j.bind(r))}if(o){const M=o.call(r,r);Rt(M)&&(e.data=Ln(M))}if(to=!0,s)for(const M in s){const j=s[M],G=nt(j)?j.bind(r,r):nt(j.get)?j.get.bind(r,r):kt,st=!nt(j)&&nt(j.set)?j.set.bind(r):kt,et=Oa({get:G,set:st});Object.defineProperty(n,M,{enumerable:!0,configurable:!0,get:()=>et.value,set:rt=>et.value=rt})}if(a)for(const M in a)ki(a[M],n,r,M);if(l){const M=nt(l)?l.call(r):l;Reflect.ownKeys(M).forEach(j=>{Ui(j,M[j])})}f&&Os(f,e,"c");function B(M,j){q(j)?j.forEach(G=>M(G.bind(r))):j&&M(j.bind(r))}if(B(Gi,c),B(He,d),B(zi,v),B(Ar,g),B(Wi,y),B(Yi,m),B(Qi,S),B(Zi,b),B(Xi,O),B(Kn,h),B(Rr,A),B(Ji,C),q(T))if(T.length){const M=e.exposed||(e.exposed={});T.forEach(j=>{Object.defineProperty(M,j,{get:()=>r[j],set:G=>r[j]=G})})}else e.exposed||(e.exposed={});I&&e.render===kt&&(e.render=I),N!=null&&(e.inheritAttrs=N),P&&(e.components=P),F&&(e.directives=F)}function Qf(e,t,r=kt,n=!1){q(e)&&(e=eo(e));for(const o in e){const s=e[o];let i;Rt(s)?"default"in s?i=Sn(s.from||o,s.default,!0):i=Sn(s.from||o):i=Sn(s),Ct(i)&&n?Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>i.value,set:a=>i.value=a}):t[o]=i}}function Os(e,t,r){wt(q(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,r)}function ki(e,t,r,n){const o=n.includes(".")?Vi(r,n):()=>r[n];if(Tt(e)){const s=t[e];nt(s)&&bn(o,s)}else if(nt(e))bn(o,e.bind(r));else if(Rt(e))if(q(e))e.forEach(s=>ki(s,t,r,n));else{const s=nt(e.handler)?e.handler.bind(r):t[e.handler];nt(s)&&bn(o,s,e)}}function qi(e){const t=e.type,{mixins:r,extends:n}=t,{mixins:o,optionsCache:s,config:{optionMergeStrategies:i}}=e.appContext,a=s.get(t);let l;return a?l=a:!o.length&&!r&&!n?l=t:(l={},o.length&&o.forEach(u=>sr(l,u,i,!0)),sr(l,t,i)),s.set(t,l),l}function sr(e,t,r,n=!1){const{mixins:o,extends:s}=t;s&&sr(e,s,r,!0),o&&o.forEach(i=>sr(e,i,r,!0));for(const i in t)if(!(n&&i==="expose")){const a=kf[i]||r&&r[i];e[i]=a?a(e[i],t[i]):t[i]}return e}const kf={data:Ts,props:Ie,emits:Ie,methods:Ie,computed:Ie,beforeCreate:$t,created:$t,beforeMount:$t,mounted:$t,beforeUpdate:$t,updated:$t,beforeDestroy:$t,beforeUnmount:$t,destroyed:$t,unmounted:$t,activated:$t,deactivated:$t,errorCaptured:$t,serverPrefetch:$t,components:Ie,directives:Ie,watch:_f,provide:Ts,inject:qf};function Ts(e,t){return t?e?function(){return At(nt(e)?e.call(this,this):e,nt(t)?t.call(this,this):t)}:t:e}function qf(e,t){return Ie(eo(e),eo(t))}function eo(e){if(q(e)){const t={};for(let r=0;r0)&&!(i&16)){if(i&8){const f=e.vnode.dynamicProps;for(let c=0;c{l=!0;const[d,v]=ta(c,t,!0);At(i,d),v&&a.push(...v)};!r&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}if(!s&&!l)return n.set(e,Xe),Xe;if(q(s))for(let f=0;f-1,v[1]=y<0||g-1||mt(v,"default"))&&a.push(c)}}}const u=[i,a];return n.set(e,u),u}function As(e){return e[0]!=="$"}function Rs(e){const t=e&&e.toString().match(/^\s*function (\w+)/);return t?t[1]:e===null?"null":""}function Cs(e,t){return Rs(e)===Rs(t)}function Is(e,t){return q(t)?t.findIndex(r=>Cs(r,e)):nt(t)&&Cs(t,e)?0:-1}const ea=e=>e[0]==="_"||e==="$stable",wo=e=>q(e)?e.map(Wt):[Wt(e)],nu=(e,t,r)=>{const n=Uo((...o)=>wo(t(...o)),r);return n._c=!1,n},na=(e,t,r)=>{const n=e._ctx;for(const o in e){if(ea(o))continue;const s=e[o];if(nt(s))t[o]=nu(o,s,n);else if(s!=null){const i=wo(s);t[o]=()=>i}}},ra=(e,t)=>{const r=wo(t);e.slots.default=()=>r},ru=(e,t)=>{if(e.vnode.shapeFlag&32){const r=t._;r?(e.slots=pt(t),nr(t,"_",r)):na(t,e.slots={})}else e.slots={},t&&ra(e,t);nr(e.slots,Cr,1)},ou=(e,t,r)=>{const{vnode:n,slots:o}=e;let s=!0,i=bt;if(n.shapeFlag&32){const a=t._;a?r&&a===1?s=!1:(At(o,t),!r&&a===1&&delete o._):(s=!t.$stable,na(t,o)),i=t}else t&&(ra(e,t),i={default:1});if(s)for(const a in o)!ea(a)&&!(a in i)&&delete o[a]};function su(e,t){const r=jt;if(r===null)return e;const n=Ir(r)||r.proxy,o=e.dirs||(e.dirs=[]);for(let s=0;sir(d,t&&(q(t)?t[v]:t),r,n,o));return}if(tn(n)&&!o)return;const s=n.shapeFlag&4?Ir(n.component)||n.component.proxy:n.el,i=o?null:s,{i:a,r:l}=e,u=t&&t.r,f=a.refs===bt?a.refs={}:a.refs,c=a.setupState;if(u!=null&&u!==l&&(Tt(u)?(f[u]=null,mt(c,u)&&(c[u]=null)):Ct(u)&&(u.value=null)),nt(l))ee(l,a,12,[i,f]);else{const d=Tt(l),v=Ct(l);if(d||v){const g=()=>{if(e.f){const y=d?f[l]:l.value;o?q(y)&&Eo(y,s):q(y)?y.includes(s)||y.push(s):d?(f[l]=[s],mt(c,l)&&(c[l]=f[l])):(l.value=[s],e.k&&(f[e.k]=l.value))}else d?(f[l]=i,mt(c,l)&&(c[l]=i)):Ct(l)&&(l.value=i,e.k&&(f[e.k]=i))};i?(g.id=-1,Dt(g,r)):g()}}}let de=!1;const Jn=e=>/svg/.test(e.namespaceURI)&&e.tagName!=="foreignObject",Vr=e=>e.nodeType===8;function lu(e){const{mt:t,p:r,o:{patchProp:n,nextSibling:o,parentNode:s,remove:i,insert:a,createComment:l}}=e,u=(m,p)=>{if(!p.hasChildNodes()){r(null,m,p),or();return}de=!1,f(p.firstChild,m,null,null,null),or(),de&&console.error("Hydration completed but contains mismatches.")},f=(m,p,h,x,A,I=!1)=>{const b=Vr(m)&&m.data==="[",O=()=>g(m,p,h,x,A,b),{type:S,ref:C,shapeFlag:T}=p,N=m.nodeType;p.el=m;let P=null;switch(S){case en:N!==3?P=O():(m.data!==p.children&&(de=!0,m.data=p.children),P=o(m));break;case Lt:N!==8||b?P=O():P=o(m);break;case je:if(N!==1)P=O();else{P=m;const F=!p.children.length;for(let H=0;H{I=I||!!p.dynamicChildren;const{type:b,props:O,patchFlag:S,shapeFlag:C,dirs:T}=p,N=b==="input"&&T||b==="option";if(N||S!==-1){if(T&&qt(p,null,h,"created"),O)if(N||!I||S&48)for(const F in O)(N&&F.endsWith("value")||Mn(F)&&!gn(F))&&n(m,F,null,O[F],!1,void 0,h);else O.onClick&&n(m,"onClick",null,O.onClick,!1,void 0,h);let P;if((P=O&&O.onVnodeBeforeMount)&&Ut(P,h,p),T&&qt(p,null,h,"beforeMount"),((P=O&&O.onVnodeMounted)||T)&&$i(()=>{P&&Ut(P,h,p),T&&qt(p,null,h,"mounted")},x),C&16&&!(O&&(O.innerHTML||O.textContent))){let F=d(m.firstChild,p,m,h,x,A,I);for(;F;){de=!0;const H=F;F=F.nextSibling,i(H)}}else C&8&&m.textContent!==p.children&&(de=!0,m.textContent=p.children)}return m.nextSibling},d=(m,p,h,x,A,I,b)=>{b=b||!!p.dynamicChildren;const O=p.children,S=O.length;for(let C=0;C{const{slotScopeIds:b}=p;b&&(A=A?A.concat(b):b);const O=s(m),S=d(o(m),p,O,h,x,A,I);return S&&Vr(S)&&S.data==="]"?o(p.anchor=S):(de=!0,a(p.anchor=l("]"),O,S),S)},g=(m,p,h,x,A,I)=>{if(de=!0,p.el=null,I){const S=y(m);for(;;){const C=o(m);if(C&&C!==S)i(C);else break}}const b=o(m),O=s(m);return i(m),r(null,p,O,b,h,x,Jn(O),A),b},y=m=>{let p=0;for(;m;)if(m=o(m),m&&Vr(m)&&(m.data==="["&&p++,m.data==="]")){if(p===0)return o(m);p--}return m};return[u,f]}const Dt=$i;function sa(e){return aa(e)}function ia(e){return aa(e,lu)}function aa(e,t){const r=Dl();r.__VUE__=!0;const{insert:n,remove:o,patchProp:s,createElement:i,createText:a,createComment:l,setText:u,setElementText:f,parentNode:c,nextSibling:d,setScopeId:v=kt,cloneNode:g,insertStaticContent:y}=e,m=(E,R,D,L=null,$=null,W=null,V=!1,U=null,Y=!!R.dynamicChildren)=>{if(E===R)return;E&&!_t(E,R)&&(L=Z(E),gt(E,$,W,!0),E=null),R.patchFlag===-2&&(Y=!1,R.dynamicChildren=null);const{type:K,ref:X,shapeFlag:J}=R;switch(K){case en:p(E,R,D,L);break;case Lt:h(E,R,D,L);break;case je:E==null&&x(R,D,L,V);break;case Ft:F(E,R,D,L,$,W,V,U,Y);break;default:J&1?b(E,R,D,L,$,W,V,U,Y):J&6?H(E,R,D,L,$,W,V,U,Y):(J&64||J&128)&&K.process(E,R,D,L,$,W,V,U,Y,ct)}X!=null&&$&&ir(X,E&&E.ref,W,R||E,!R)},p=(E,R,D,L)=>{if(E==null)n(R.el=a(R.children),D,L);else{const $=R.el=E.el;R.children!==E.children&&u($,R.children)}},h=(E,R,D,L)=>{E==null?n(R.el=l(R.children||""),D,L):R.el=E.el},x=(E,R,D,L)=>{[E.el,E.anchor]=y(E.children,R,D,L,E.el,E.anchor)},A=({el:E,anchor:R},D,L)=>{let $;for(;E&&E!==R;)$=d(E),n(E,D,L),E=$;n(R,D,L)},I=({el:E,anchor:R})=>{let D;for(;E&&E!==R;)D=d(E),o(E),E=D;o(R)},b=(E,R,D,L,$,W,V,U,Y)=>{V=V||R.type==="svg",E==null?O(R,D,L,$,W,V,U,Y):T(E,R,$,W,V,U,Y)},O=(E,R,D,L,$,W,V,U)=>{let Y,K;const{type:X,props:J,shapeFlag:k,transition:tt,patchFlag:dt,dirs:St}=E;if(E.el&&g!==void 0&&dt===-1)Y=E.el=g(E.el);else{if(Y=E.el=i(E.type,W,J&&J.is,J),k&8?f(Y,E.children):k&16&&C(E.children,Y,null,L,$,W&&X!=="foreignObject",V,U),St&&qt(E,null,L,"created"),J){for(const xt in J)xt!=="value"&&!gn(xt)&&s(Y,xt,null,J[xt],W,E.children,L,$,Q);"value"in J&&s(Y,"value",null,J.value),(K=J.onVnodeBeforeMount)&&Ut(K,L,E)}S(Y,E,E.scopeId,V,L)}St&&qt(E,null,L,"beforeMount");const Et=(!$||$&&!$.pendingBranch)&&tt&&!tt.persisted;Et&&tt.beforeEnter(Y),n(Y,R,D),((K=J&&J.onVnodeMounted)||Et||St)&&Dt(()=>{K&&Ut(K,L,E),Et&&tt.enter(Y),St&&qt(E,null,L,"mounted")},$)},S=(E,R,D,L,$)=>{if(D&&v(E,D),L)for(let W=0;W{for(let K=Y;K{const U=R.el=E.el;let{patchFlag:Y,dynamicChildren:K,dirs:X}=R;Y|=E.patchFlag&16;const J=E.props||bt,k=R.props||bt;let tt;D&&Re(D,!1),(tt=k.onVnodeBeforeUpdate)&&Ut(tt,D,R,E),X&&qt(R,E,D,"beforeUpdate"),D&&Re(D,!0);const dt=$&&R.type!=="foreignObject";if(K?N(E.dynamicChildren,K,U,D,L,dt,W):V||G(E,R,U,null,D,L,dt,W,!1),Y>0){if(Y&16)P(U,R,J,k,D,L,$);else if(Y&2&&J.class!==k.class&&s(U,"class",null,k.class,$),Y&4&&s(U,"style",J.style,k.style,$),Y&8){const St=R.dynamicProps;for(let Et=0;Et{tt&&Ut(tt,D,R,E),X&&qt(R,E,D,"updated")},L)},N=(E,R,D,L,$,W,V)=>{for(let U=0;U{if(D!==L){for(const U in L){if(gn(U))continue;const Y=L[U],K=D[U];Y!==K&&U!=="value"&&s(E,U,K,Y,V,R.children,$,W,Q)}if(D!==bt)for(const U in D)!gn(U)&&!(U in L)&&s(E,U,D[U],null,V,R.children,$,W,Q);"value"in L&&s(E,"value",D.value,L.value)}},F=(E,R,D,L,$,W,V,U,Y)=>{const K=R.el=E?E.el:a(""),X=R.anchor=E?E.anchor:a("");let{patchFlag:J,dynamicChildren:k,slotScopeIds:tt}=R;tt&&(U=U?U.concat(tt):tt),E==null?(n(K,D,L),n(X,D,L),C(R.children,D,X,$,W,V,U,Y)):J>0&&J&64&&k&&E.dynamicChildren?(N(E.dynamicChildren,k,D,$,W,V,U),(R.key!=null||$&&R===$.subTree)&&Go(E,R,!0)):G(E,R,D,X,$,W,V,U,Y)},H=(E,R,D,L,$,W,V,U,Y)=>{R.slotScopeIds=U,E==null?R.shapeFlag&512?$.ctx.activate(R,D,L,V,Y):w(R,D,L,$,W,V,Y):B(E,R,Y)},w=(E,R,D,L,$,W,V)=>{const U=E.component=ma(E,L,$);if(Un(E)&&(U.ctx.renderer=ct),Ea(U),U.asyncDep){if($&&$.registerDep(U,M),!E.el){const Y=U.subTree=Ot(Lt);h(null,Y,R,D)}return}M(U,E,R,D,$,W,V)},B=(E,R,D)=>{const L=R.component=E.component;if(Mf(E,R,D))if(L.asyncDep&&!L.asyncResolved){j(L,R,D);return}else L.next=R,Rf(L.update),L.update();else R.component=E.component,R.el=E.el,L.vnode=R},M=(E,R,D,L,$,W,V)=>{const U=()=>{if(E.isMounted){let{next:X,bu:J,u:k,parent:tt,vnode:dt}=E,St=X,Et;Re(E,!1),X?(X.el=dt.el,j(E,X,V)):X=dt,J&&Qe(J),(Et=X.props&&X.props.onVnodeBeforeUpdate)&&Ut(Et,tt,X,dt),Re(E,!0);const xt=qn(E),Bt=E.subTree;E.subTree=xt,m(Bt,xt,c(Bt.el),Z(Bt),E,$,W),X.el=xt.el,St===null&&Ko(E,xt.el),k&&Dt(k,$),(Et=X.props&&X.props.onVnodeUpdated)&&Dt(()=>Ut(Et,tt,X,dt),$)}else{let X;const{el:J,props:k}=R,{bm:tt,m:dt,parent:St}=E,Et=tn(R);if(Re(E,!1),tt&&Qe(tt),!Et&&(X=k&&k.onVnodeBeforeMount)&&Ut(X,St,R),Re(E,!0),J&&ft){const xt=()=>{E.subTree=qn(E),ft(J,E.subTree,E,$,null)};Et?R.type.__asyncLoader().then(()=>!E.isUnmounted&&xt()):xt()}else{const xt=E.subTree=qn(E);m(null,xt,D,L,E,$,W),R.el=xt.el}if(dt&&Dt(dt,$),!Et&&(X=k&&k.onVnodeMounted)){const xt=R;Dt(()=>Ut(X,St,xt),$)}R.shapeFlag&256&&E.a&&Dt(E.a,$),E.isMounted=!0,R=D=L=null}},Y=E.effect=new jn(U,()=>jo(E.update),E.scope),K=E.update=Y.run.bind(Y);K.id=E.uid,Re(E,!0),K()},j=(E,R,D)=>{R.component=E;const L=E.vnode.props;E.vnode=R,E.next=null,eu(E,R.props,L,D),ou(E,R.children,D),Ue(),$o(void 0,E.update),Ke()},G=(E,R,D,L,$,W,V,U,Y=!1)=>{const K=E&&E.children,X=E?E.shapeFlag:0,J=R.children,{patchFlag:k,shapeFlag:tt}=R;if(k>0){if(k&128){et(K,J,D,L,$,W,V,U,Y);return}else if(k&256){st(K,J,D,L,$,W,V,U,Y);return}}tt&8?(X&16&&Q(K,$,W),J!==K&&f(D,J)):X&16?tt&16?et(K,J,D,L,$,W,V,U,Y):Q(K,$,W,!0):(X&8&&f(D,""),tt&16&&C(J,D,L,$,W,V,U,Y))},st=(E,R,D,L,$,W,V,U,Y)=>{E=E||Xe,R=R||Xe;const K=E.length,X=R.length,J=Math.min(K,X);let k;for(k=0;kX?Q(E,$,W,!0,!1,J):C(R,D,L,$,W,V,U,Y,J)},et=(E,R,D,L,$,W,V,U,Y)=>{let K=0;const X=R.length;let J=E.length-1,k=X-1;for(;K<=J&&K<=k;){const tt=E[K],dt=R[K]=Y?pe(R[K]):Wt(R[K]);if(_t(tt,dt))m(tt,dt,D,null,$,W,V,U,Y);else break;K++}for(;K<=J&&K<=k;){const tt=E[J],dt=R[k]=Y?pe(R[k]):Wt(R[k]);if(_t(tt,dt))m(tt,dt,D,null,$,W,V,U,Y);else break;J--,k--}if(K>J){if(K<=k){const tt=k+1,dt=ttk)for(;K<=J;)gt(E[K],$,W,!0),K++;else{const tt=K,dt=K,St=new Map;for(K=dt;K<=k;K++){const at=R[K]=Y?pe(R[K]):Wt(R[K]);at.key!=null&&St.set(at.key,K)}let Et,xt=0;const Bt=k-dt+1;let vt=!1,ot=0;const ut=new Array(Bt);for(K=0;K=Bt){gt(at,$,W,!0);continue}let Pt;if(at.key!=null)Pt=St.get(at.key);else for(Et=dt;Et<=k;Et++)if(ut[Et-dt]===0&&_t(at,R[Et])){Pt=Et;break}Pt===void 0?gt(at,$,W,!0):(ut[Pt-dt]=K+1,Pt>=ot?ot=Pt:vt=!0,m(at,R[Pt],D,null,$,W,V,U,Y),xt++)}const ht=vt?fu(ut):Xe;for(Et=ht.length-1,K=Bt-1;K>=0;K--){const at=dt+K,Pt=R[at],ls=at+1{const{el:W,type:V,transition:U,children:Y,shapeFlag:K}=E;if(K&6){rt(E.component.subTree,R,D,L);return}if(K&128){E.suspense.move(R,D,L);return}if(K&64){V.move(E,R,D,ct);return}if(V===Ft){n(W,R,D);for(let J=0;JU.enter(W),$);else{const{leave:J,delayLeave:k,afterLeave:tt}=U,dt=()=>n(W,R,D),St=()=>{J(W,()=>{dt(),tt&&tt()})};k?k(W,dt,St):St()}else n(W,R,D)},gt=(E,R,D,L=!1,$=!1)=>{const{type:W,props:V,ref:U,children:Y,dynamicChildren:K,shapeFlag:X,patchFlag:J,dirs:k}=E;if(U!=null&&ir(U,null,D,E,!0),X&256){R.ctx.deactivate(E);return}const tt=X&1&&k,dt=!tn(E);let St;if(dt&&(St=V&&V.onVnodeBeforeUnmount)&&Ut(St,R,E),X&6)lt(E.component,D,L);else{if(X&128){E.suspense.unmount(D,L);return}tt&&qt(E,null,R,"beforeUnmount"),X&64?E.type.remove(E,R,D,$,ct,L):K&&(W!==Ft||J>0&&J&64)?Q(K,R,D,!1,!0):(W===Ft&&J&384||!$&&X&16)&&Q(Y,R,D),L&&z(E)}(dt&&(St=V&&V.onVnodeUnmounted)||tt)&&Dt(()=>{St&&Ut(St,R,E),tt&&qt(E,null,R,"unmounted")},D)},z=E=>{const{type:R,el:D,anchor:L,transition:$}=E;if(R===Ft){_(D,L);return}if(R===je){I(E);return}const W=()=>{o(D),$&&!$.persisted&&$.afterLeave&&$.afterLeave()};if(E.shapeFlag&1&&$&&!$.persisted){const{leave:V,delayLeave:U}=$,Y=()=>V(D,W);U?U(E.el,W,Y):Y()}else W()},_=(E,R)=>{let D;for(;E!==R;)D=d(E),o(E),E=D;o(R)},lt=(E,R,D)=>{const{bum:L,scope:$,update:W,subTree:V,um:U}=E;L&&Qe(L),$.stop(),W&&(W.active=!1,gt(V,E,R,D)),U&&Dt(U,R),Dt(()=>{E.isUnmounted=!0},R),R&&R.pendingBranch&&!R.isUnmounted&&E.asyncDep&&!E.asyncResolved&&E.suspenseId===R.pendingId&&(R.deps--,R.deps===0&&R.resolve())},Q=(E,R,D,L=!1,$=!1,W=0)=>{for(let V=W;VE.shapeFlag&6?Z(E.component.subTree):E.shapeFlag&128?E.suspense.next():d(E.anchor||E.el),yt=(E,R,D)=>{E==null?R._vnode&>(R._vnode,null,null,!0):m(R._vnode||null,E,R,null,null,null,D),or(),R._vnode=E},ct={p:m,um:gt,m:rt,r:z,mt:w,mc:C,pc:G,pbc:N,n:Z,o:e};let it,ft;return t&&([it,ft]=t(ct)),{render:yt,hydrate:it,createApp:au(yt,it)}}function Re({effect:e,update:t},r){e.allowRecurse=t.allowRecurse=r}function Go(e,t,r=!1){const n=e.children,o=t.children;if(q(n)&&q(o))for(let s=0;s>1,e[r[a]]0&&(t[n]=r[s-1]),r[s]=n)}}for(s=r.length,i=r[s-1];s-- >0;)r[s]=i,i=t[i];return r}const uu=e=>e.__isTeleport,On=e=>e&&(e.disabled||e.disabled===""),Ps=e=>typeof SVGElement!="undefined"&&e instanceof SVGElement,ro=(e,t)=>{const r=e&&e.to;return Tt(r)?t?t(r):null:r},cu={__isTeleport:!0,process(e,t,r,n,o,s,i,a,l,u){const{mc:f,pc:c,pbc:d,o:{insert:v,querySelector:g,createText:y,createComment:m}}=u,p=On(t.props);let{shapeFlag:h,children:x,dynamicChildren:A}=t;if(e==null){const I=t.el=y(""),b=t.anchor=y("");v(I,r,n),v(b,r,n);const O=t.target=ro(t.props,g),S=t.targetAnchor=y("");O&&(v(S,O),i=i||Ps(O));const C=(T,N)=>{h&16&&f(x,T,N,o,s,i,a,l)};p?C(r,b):O&&C(O,S)}else{t.el=e.el;const I=t.anchor=e.anchor,b=t.target=e.target,O=t.targetAnchor=e.targetAnchor,S=On(e.props),C=S?r:b,T=S?I:O;if(i=i||Ps(b),A?(d(e.dynamicChildren,A,C,o,s,i,a),Go(e,t,!0)):l||c(e,t,C,T,o,s,i,a,!1),p)S||Xn(t,r,I,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const N=t.target=ro(t.props,g);N&&Xn(t,N,null,u,0)}else S&&Xn(t,b,O,u,1)}},remove(e,t,r,n,{um:o,o:{remove:s}},i){const{shapeFlag:a,children:l,anchor:u,targetAnchor:f,target:c,props:d}=e;if(c&&s(f),(i||!On(d))&&(s(u),a&16))for(let v=0;v0?ne||Xe:null,ua(),nn>0&&ne&&ne.push(e),e}function so(e,t,r,n,o,s){return ca(Zt(e,t,r,n,o,s,!0))}function Vn(e,t,r,n,o){return ca(Ot(e,t,r,n,o,!0))}function Oe(e){return e?e.__v_isVNode===!0:!1}function _t(e,t){return e.type===t.type&&e.key===t.key}function mu(e){}const Cr="__vInternal",da=({key:e})=>e!=null?e:null,_n=({ref:e,ref_key:t,ref_for:r})=>e!=null?Tt(e)||Ct(e)||nt(e)?{i:jt,r:e,k:t,f:!!r}:e:null;function Zt(e,t=null,r=null,n=0,o=null,s=e===Ft?0:1,i=!1,a=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&da(t),ref:t&&_n(t),scopeId:br,slotScopeIds:null,children:r,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:n,dynamicProps:o,dynamicChildren:null,appContext:null};return a?(Zo(l,r),s&128&&e.normalize(l)):r&&(l.shapeFlag|=Tt(r)?8:16),nn>0&&!i&&ne&&(l.patchFlag>0||s&6)&&l.patchFlag!==32&&ne.push(l),l}const Ot=yu;function yu(e,t=null,r=null,n=0,o=null,s=!1){if((!e||e===fa)&&(e=Lt),Oe(e)){const a=le(e,t,!0);return r&&Zo(a,r),a}if(Mu(e)&&(e=e.__vccOpts),t){t=va(t);let{class:a,style:l}=t;a&&!Tt(a)&&(t.class=Fn(a)),Rt(l)&&(Io(l)&&!q(l)&&(l=At({},l)),t.style=Dn(l))}const i=Tt(e)?1:Bf(e)?128:uu(e)?64:Rt(e)?4:nt(e)?2:0;return Zt(e,t,r,n,o,i,s,!0)}function va(e){return e?Io(e)||Cr in e?At({},e):e:null}function le(e,t,r=!1){const{props:n,ref:o,patchFlag:s,children:i}=e,a=t?pa(n||{},t):n;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:a,key:a&&da(a),ref:t&&t.ref?r&&o?q(o)?o.concat(_n(t)):[o,_n(t)]:_n(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Ft?s===-1?16:s|16:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&le(e.ssContent),ssFallback:e.ssFallback&&le(e.ssFallback),el:e.el,anchor:e.anchor}}function Xo(e=" ",t=0){return Ot(en,null,e,t)}function Eu(e,t){const r=Ot(je,null,e);return r.staticCount=t,r}function ha(e="",t=!1){return t?(be(),Vn(Lt,null,e)):Ot(Lt,null,e)}function Wt(e){return e==null||typeof e=="boolean"?Ot(Lt):q(e)?Ot(Ft,null,e.slice()):typeof e=="object"?pe(e):Ot(en,null,String(e))}function pe(e){return e.el===null||e.memo?e:le(e)}function Zo(e,t){let r=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(q(t))r=16;else if(typeof t=="object")if(n&65){const o=t.default;o&&(o._c&&(o._d=!1),Zo(e,o()),o._c&&(o._d=!0));return}else{r=32;const o=t._;!o&&!(Cr in t)?t._ctx=jt:o===3&&jt&&(jt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else nt(t)?(t={default:t,_ctx:jt},r=32):(t=String(t),n&64?(r=16,t=[Xo(t)]):r=8);e.children=t,e.shapeFlag|=r}function pa(...e){const t={};for(let r=0;rt(i,a,void 0,s&&s[a]));else{const i=Object.keys(e);o=new Array(i.length);for(let a=0,l=i.length;aOe(t)?!(t.type===Lt||t.type===Ft&&!ga(t.children)):!0)?e:null}function Ou(e){const t={};for(const r in e)t[mn(r)]=e[r];return t}const io=e=>e?ya(e)?Ir(e)||e.proxy:io(e.parent):null,ar=At(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>io(e.parent),$root:e=>io(e.root),$emit:e=>e.emit,$options:e=>qi(e),$forceUpdate:e=>()=>jo(e.update),$nextTick:e=>Bo.bind(e.proxy),$watch:e=>Yf.bind(e)}),ao={get({_:e},t){const{ctx:r,setupState:n,data:o,props:s,accessCache:i,type:a,appContext:l}=e;let u;if(t[0]!=="$"){const v=i[t];if(v!==void 0)switch(v){case 1:return n[t];case 2:return o[t];case 4:return r[t];case 3:return s[t]}else{if(n!==bt&&mt(n,t))return i[t]=1,n[t];if(o!==bt&&mt(o,t))return i[t]=2,o[t];if((u=e.propsOptions[0])&&mt(u,t))return i[t]=3,s[t];if(r!==bt&&mt(r,t))return i[t]=4,r[t];to&&(i[t]=0)}}const f=ar[t];let c,d;if(f)return t==="$attrs"&&zt(e,"get",t),f(e);if((c=a.__cssModules)&&(c=c[t]))return c;if(r!==bt&&mt(r,t))return i[t]=4,r[t];if(d=l.config.globalProperties,mt(d,t))return d[t]},set({_:e},t,r){const{data:n,setupState:o,ctx:s}=e;return o!==bt&&mt(o,t)?(o[t]=r,!0):n!==bt&&mt(n,t)?(n[t]=r,!0):mt(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(s[t]=r,!0)},has({_:{data:e,setupState:t,accessCache:r,ctx:n,appContext:o,propsOptions:s}},i){let a;return!!r[i]||e!==bt&&mt(e,i)||t!==bt&&mt(t,i)||(a=s[0])&&mt(a,i)||mt(n,i)||mt(ar,i)||mt(o.config.globalProperties,i)},defineProperty(e,t,r){return r.get!=null?e._.accessCache[t]=0:mt(r,"value")&&this.set(e,t,r.value,null),Reflect.defineProperty(e,t,r)}},Tu=At({},ao,{get(e,t){if(t!==Symbol.unscopables)return ao.get(e,t,e)},has(e,t){return t[0]!=="_"&&!ml(t)}}),Au=oa();let Ru=0;function ma(e,t,r){const n=e.type,o=(t?t.appContext:e.appContext)||Au,s={uid:Ru++,vnode:e,type:n,parent:t,appContext:o,root:null,next:null,subTree:null,effect:null,update:null,scope:new Oo(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(o.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:ta(n,o),emitsOptions:Bi(n,o),emit:null,emitted:null,propsDefaults:bt,inheritAttrs:n.inheritAttrs,ctx:bt,data:bt,props:bt,attrs:bt,slots:bt,refs:bt,setupState:bt,setupContext:null,suspense:r,suspenseId:r?r.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return s.ctx={_:s},s.root=t?t.root:s,s.emit=If.bind(null,s),e.ce&&e.ce(s),s}let It=null;const ue=()=>It||jt,Te=e=>{It=e,e.scope.on()},ye=()=>{It&&It.scope.off(),It=null};function ya(e){return e.vnode.shapeFlag&4}let rn=!1;function Ea(e,t=!1){rn=t;const{props:r,children:n}=e.vnode,o=ya(e);tu(e,r,o,t),ru(e,n);const s=o?Cu(e,t):void 0;return rn=!1,s}function Cu(e,t){const r=e.type;e.accessCache=Object.create(null),e.proxy=Po(new Proxy(e.ctx,ao));const{setup:n}=r;if(n){const o=e.setupContext=n.length>1?Sa(e):null;Te(e),Ue();const s=ee(n,e,0,[e.props,o]);if(Ke(),ye(),So(s)){if(s.then(ye,ye),t)return s.then(i=>{lo(e,i,t)}).catch(i=>{Ve(i,e,0)});e.asyncDep=s}else lo(e,s,t)}else xa(e,t)}function lo(e,t,r){nt(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Rt(t)&&(e.setupState=Fo(t)),xa(e,r)}let lr,fo;function Iu(e){lr=e,fo=t=>{t.render._rc&&(t.withProxy=new Proxy(t.ctx,Tu))}}const Pu=()=>!lr;function xa(e,t,r){const n=e.type;if(!e.render){if(!t&&lr&&!n.render){const o=n.template;if(o){const{isCustomElement:s,compilerOptions:i}=e.appContext.config,{delimiters:a,compilerOptions:l}=n,u=At(At({isCustomElement:s,delimiters:a},i),l);n.render=lr(o,u)}}e.render=n.render||kt,fo&&fo(e)}Te(e),Ue(),Zf(e),Ke(),ye()}function Nu(e){return new Proxy(e.attrs,{get(t,r){return zt(e,"get","$attrs"),t[r]}})}function Sa(e){const t=n=>{e.exposed=n||{}};let r;return{get attrs(){return r||(r=Nu(e))},slots:e.slots,emit:e.emit,expose:t}}function Ir(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(Fo(Po(e.exposed)),{get(t,r){if(r in t)return t[r];if(r in ar)return ar[r](e)}}))}const Du=/(?:^|[-_])(\w)/g,Fu=e=>e.replace(Du,t=>t.toUpperCase()).replace(/[-_]/g,"");function fr(e){return nt(e)&&e.displayName||e.name}function ba(e,t,r=!1){let n=fr(t);if(!n&&t.__file){const o=t.__file.match(/([^/\\]+)\.\w+$/);o&&(n=o[1])}if(!n&&e&&e.parent){const o=s=>{for(const i in s)if(s[i]===t)return i};n=o(e.components||e.parent.type.components)||o(e.appContext.components)}return n?Fu(n):r?"App":"Anonymous"}function Mu(e){return nt(e)&&"__vccOpts"in e}const Oa=(e,t)=>Ef(e,t,rn);function Bu(){return null}function ju(){return null}function Lu(e){}function $u(e,t){return null}function Uu(){return Ta().slots}function Ku(){return Ta().attrs}function Ta(){const e=ue();return e.setupContext||(e.setupContext=Sa(e))}function Vu(e,t){const r=q(e)?e.reduce((n,o)=>(n[o]={},n),{}):e;for(const n in t){const o=r[n];o?q(o)||nt(o)?r[n]={type:o,default:t[n]}:o.default=t[n]:o===null&&(r[n]={default:t[n]})}return r}function Hu(e,t){const r={};for(const n in e)t.includes(n)||Object.defineProperty(r,n,{enumerable:!0,get:()=>e[n]});return r}function Wu(e){const t=ue();let r=e();return ye(),So(r)&&(r=r.catch(n=>{throw Te(t),n})),[r,()=>Te(t)]}function Aa(e,t,r){const n=arguments.length;return n===2?Rt(t)&&!q(t)?Oe(t)?Ot(e,null,[t]):Ot(e,t):Ot(e,null,t):(n>3?r=Array.prototype.slice.call(arguments,2):n===3&&Oe(r)&&(r=[r]),Ot(e,t,r))}const Ra=Symbol(""),Yu=()=>{{const e=Sn(Ra);return e||Ci("Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build."),e}};function wu(){}function Gu(e,t,r,n){const o=r[n];if(o&&Ca(o,e))return o;const s=t();return s.memo=e.slice(),r[n]=s}function Ca(e,t){const r=e.memo;if(r.length!=t.length)return!1;for(let n=0;n0&&ne&&ne.push(e),!0}const Ia="3.2.33",zu={createComponentInstance:ma,setupComponent:Ea,renderComponentRoot:qn,setCurrentRenderingInstance:Pn,isVNode:Oe,normalizeVNode:Wt},Ju=zu,Xu=null,Zu=null,Qu="http://www.w3.org/2000/svg",Ne=typeof document!="undefined"?document:null,Ds=Ne&&Ne.createElement("template"),ku={insert:(e,t,r)=>{t.insertBefore(e,r||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,r,n)=>{const o=t?Ne.createElementNS(Qu,e):Ne.createElement(e,r?{is:r}:void 0);return e==="select"&&n&&n.multiple!=null&&o.setAttribute("multiple",n.multiple),o},createText:e=>Ne.createTextNode(e),createComment:e=>Ne.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ne.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},cloneNode(e){const t=e.cloneNode(!0);return"_value"in e&&(t._value=e._value),t},insertStaticContent(e,t,r,n,o,s){const i=r?r.previousSibling:t.lastChild;if(o&&(o===s||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),r),!(o===s||!(o=o.nextSibling)););else{Ds.innerHTML=n?`${e}`:e;const a=Ds.content;if(n){const l=a.firstChild;for(;l.firstChild;)a.appendChild(l.firstChild);a.removeChild(l)}t.insertBefore(a,r)}return[i?i.nextSibling:t.firstChild,r?r.previousSibling:t.lastChild]}};function qu(e,t,r){const n=e._vtc;n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):r?e.setAttribute("class",t):e.className=t}function _u(e,t,r){const n=e.style,o=Tt(r);if(r&&!o){for(const s in r)uo(n,s,r[s]);if(t&&!Tt(t))for(const s in t)r[s]==null&&uo(n,s,"")}else{const s=n.display;o?t!==r&&(n.cssText=r):t&&e.removeAttribute("style"),"_vod"in e&&(n.display=s)}}const Fs=/\s*!important$/;function uo(e,t,r){if(q(r))r.forEach(n=>uo(e,t,n));else if(r==null&&(r=""),t.startsWith("--"))e.setProperty(t,r);else{const n=tc(e,t);Fs.test(r)?e.setProperty(te(n),r.replace(Fs,""),"important"):e[n]=r}}const Ms=["Webkit","Moz","ms"],Hr={};function tc(e,t){const r=Hr[t];if(r)return r;let n=Gt(t);if(n!=="filter"&&n in e)return Hr[t]=n;n=Bn(n);for(let o=0;o{let e=Date.now,t=!1;if(typeof window!="undefined"){Date.now()>document.createEvent("Event").timeStamp&&(e=()=>performance.now());const r=navigator.userAgent.match(/firefox\/(\d+)/i);t=!!(r&&Number(r[1])<=53)}return[e,t]})();let co=0;const oc=Promise.resolve(),sc=()=>{co=0},ic=()=>co||(oc.then(sc),co=Pa());function ie(e,t,r,n){e.addEventListener(t,r,n)}function ac(e,t,r,n){e.removeEventListener(t,r,n)}function lc(e,t,r,n,o=null){const s=e._vei||(e._vei={}),i=s[t];if(n&&i)i.value=n;else{const[a,l]=fc(t);if(n){const u=s[t]=uc(n,o);ie(e,a,u,l)}else i&&(ac(e,a,i,l),s[t]=void 0)}}const js=/(?:Once|Passive|Capture)$/;function fc(e){let t;if(js.test(e)){t={};let r;for(;r=e.match(js);)e=e.slice(0,e.length-r[0].length),t[r[0].toLowerCase()]=!0}return[te(e.slice(2)),t]}function uc(e,t){const r=n=>{const o=n.timeStamp||Pa();(rc||o>=r.attached-1)&&wt(cc(n,r.value),t,5,[n])};return r.value=e,r.attached=ic(),r}function cc(e,t){if(q(t)){const r=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{r.call(e),e._stopped=!0},t.map(n=>o=>!o._stopped&&n&&n(o))}else return t}const Ls=/^on[a-z]/,dc=(e,t,r,n,o=!1,s,i,a,l)=>{t==="class"?qu(e,n,o):t==="style"?_u(e,r,n):Mn(t)?yo(t)||lc(e,t,r,n,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):vc(e,t,n,o))?nc(e,t,n,s,i,a,l):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),ec(e,t,n,o))};function vc(e,t,r,n){return n?!!(t==="innerHTML"||t==="textContent"||t in e&&Ls.test(t)&&nt(r)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||Ls.test(t)&&Tt(r)?!1:t in e}function Na(e,t){const r=Yo(e);class n extends Pr{constructor(s){super(r,s,t)}}return n.def=r,n}const hc=e=>Na(e,Ya),pc=typeof HTMLElement!="undefined"?HTMLElement:class{};class Pr extends pc{constructor(t,r={},n){super(),this._def=t,this._props=r,this._instance=null,this._connected=!1,this._resolved=!1,this._numberProps=null,this.shadowRoot&&n?n(this._createVNode(),this.shadowRoot):this.attachShadow({mode:"open"})}connectedCallback(){this._connected=!0,this._instance||this._resolveDef()}disconnectedCallback(){this._connected=!1,Bo(()=>{this._connected||(ho(null,this.shadowRoot),this._instance=null)})}_resolveDef(){if(this._resolved)return;this._resolved=!0;for(let n=0;n{for(const o of n)this._setAttr(o.attributeName)}).observe(this,{attributes:!0});const t=n=>{const{props:o,styles:s}=n,i=!q(o),a=o?i?Object.keys(o):o:[];let l;if(i)for(const u in this._props){const f=o[u];(f===Number||f&&f.type===Number)&&(this._props[u]=xe(this._props[u]),(l||(l=Object.create(null)))[u]=!0)}this._numberProps=l;for(const u of Object.keys(this))u[0]!=="_"&&this._setProp(u,this[u],!0,!1);for(const u of a.map(Gt))Object.defineProperty(this,u,{get(){return this._getProp(u)},set(f){this._setProp(u,f)}});this._applyStyles(s),this._update()},r=this._def.__asyncLoader;r?r().then(t):t(this._def)}_setAttr(t){let r=this.getAttribute(t);this._numberProps&&this._numberProps[t]&&(r=xe(r)),this._setProp(Gt(t),r,!1)}_getProp(t){return this._props[t]}_setProp(t,r,n=!0,o=!0){r!==this._props[t]&&(this._props[t]=r,o&&this._instance&&this._update(),n&&(r===!0?this.setAttribute(te(t),""):typeof r=="string"||typeof r=="number"?this.setAttribute(te(t),r+""):r||this.removeAttribute(te(t))))}_update(){ho(this._createVNode(),this.shadowRoot)}_createVNode(){const t=Ot(this._def,At({},this._props));return this._instance||(t.ce=r=>{this._instance=r,r.isCE=!0,r.emit=(o,...s)=>{this.dispatchEvent(new CustomEvent(o,{detail:s}))};let n=this;for(;n=n&&(n.parentNode||n.host);)if(n instanceof Pr){r.parent=n._instance;break}}),t}_applyStyles(t){t&&t.forEach(r=>{const n=document.createElement("style");n.textContent=r,this.shadowRoot.appendChild(n)})}}function gc(e="$style"){{const t=ue();if(!t)return bt;const r=t.type.__cssModules;if(!r)return bt;const n=r[e];return n||bt}}function mc(e){const t=ue();if(!t)return;const r=()=>vo(t.subTree,e(t.proxy));Ki(r),He(()=>{const n=new MutationObserver(r);n.observe(t.subTree.el.parentNode,{childList:!0}),Rr(()=>n.disconnect())})}function vo(e,t){if(e.shapeFlag&128){const r=e.suspense;e=r.activeBranch,r.pendingBranch&&!r.isHydrating&&r.effects.push(()=>{vo(r.activeBranch,t)})}for(;e.component;)e=e.component.subTree;if(e.shapeFlag&1&&e.el)$s(e.el,t);else if(e.type===Ft)e.children.forEach(r=>vo(r,t));else if(e.type===je){let{el:r,anchor:n}=e;for(;r&&($s(r,t),r!==n);)r=r.nextSibling}}function $s(e,t){if(e.nodeType===1){const r=e.style;for(const n in t)r.setProperty(`--${n}`,t[n])}}const ve="transition",un="animation",Qo=(e,{slots:t})=>Aa(Wo,Fa(e),t);Qo.displayName="Transition";const Da={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},yc=Qo.props=At({},Wo.props,Da),Ce=(e,t=[])=>{q(e)?e.forEach(r=>r(...t)):e&&e(...t)},Us=e=>e?q(e)?e.some(t=>t.length>1):e.length>1:!1;function Fa(e){const t={};for(const P in e)P in Da||(t[P]=e[P]);if(e.css===!1)return t;const{name:r="v",type:n,duration:o,enterFromClass:s=`${r}-enter-from`,enterActiveClass:i=`${r}-enter-active`,enterToClass:a=`${r}-enter-to`,appearFromClass:l=s,appearActiveClass:u=i,appearToClass:f=a,leaveFromClass:c=`${r}-leave-from`,leaveActiveClass:d=`${r}-leave-active`,leaveToClass:v=`${r}-leave-to`}=e,g=Ec(o),y=g&&g[0],m=g&&g[1],{onBeforeEnter:p,onEnter:h,onEnterCancelled:x,onLeave:A,onLeaveCancelled:I,onBeforeAppear:b=p,onAppear:O=h,onAppearCancelled:S=x}=t,C=(P,F,H)=>{Pe(P,F?f:a),Pe(P,F?u:i),H&&H()},T=(P,F)=>{Pe(P,v),Pe(P,d),F&&F()},N=P=>(F,H)=>{const w=P?O:h,B=()=>C(F,P,H);Ce(w,[F,B]),Ks(()=>{Pe(F,P?l:s),oe(F,P?f:a),Us(w)||Vs(F,n,y,B)})};return At(t,{onBeforeEnter(P){Ce(p,[P]),oe(P,s),oe(P,i)},onBeforeAppear(P){Ce(b,[P]),oe(P,l),oe(P,u)},onEnter:N(!1),onAppear:N(!0),onLeave(P,F){const H=()=>T(P,F);oe(P,c),Ba(),oe(P,d),Ks(()=>{Pe(P,c),oe(P,v),Us(A)||Vs(P,n,m,H)}),Ce(A,[P,H])},onEnterCancelled(P){C(P,!1),Ce(x,[P])},onAppearCancelled(P){C(P,!0),Ce(S,[P])},onLeaveCancelled(P){T(P),Ce(I,[P])}})}function Ec(e){if(e==null)return null;if(Rt(e))return[Wr(e.enter),Wr(e.leave)];{const t=Wr(e);return[t,t]}}function Wr(e){return xe(e)}function oe(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.add(r)),(e._vtc||(e._vtc=new Set)).add(t)}function Pe(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.remove(n));const{_vtc:r}=e;r&&(r.delete(t),r.size||(e._vtc=void 0))}function Ks(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let xc=0;function Vs(e,t,r,n){const o=e._endId=++xc,s=()=>{o===e._endId&&n()};if(r)return setTimeout(s,r);const{type:i,timeout:a,propCount:l}=Ma(e,t);if(!i)return n();const u=i+"end";let f=0;const c=()=>{e.removeEventListener(u,d),s()},d=v=>{v.target===e&&++f>=l&&c()};setTimeout(()=>{f(r[g]||"").split(", "),o=n(ve+"Delay"),s=n(ve+"Duration"),i=Hs(o,s),a=n(un+"Delay"),l=n(un+"Duration"),u=Hs(a,l);let f=null,c=0,d=0;t===ve?i>0&&(f=ve,c=i,d=s.length):t===un?u>0&&(f=un,c=u,d=l.length):(c=Math.max(i,u),f=c>0?i>u?ve:un:null,d=f?f===ve?s.length:l.length:0);const v=f===ve&&/\b(transform|all)(,|$)/.test(r[ve+"Property"]);return{type:f,timeout:c,propCount:d,hasTransform:v}}function Hs(e,t){for(;e.lengthWs(r)+Ws(e[n])))}function Ws(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function Ba(){return document.body.offsetHeight}const ja=new WeakMap,La=new WeakMap,Sc={name:"TransitionGroup",props:At({},yc,{tag:String,moveClass:String}),setup(e,{slots:t}){const r=ue(),n=Ho();let o,s;return Ar(()=>{if(!o.length)return;const i=e.moveClass||`${e.name||"v"}-move`;if(!Rc(o[0].el,r.vnode.el,i))return;o.forEach(Oc),o.forEach(Tc);const a=o.filter(Ac);Ba(),a.forEach(l=>{const u=l.el,f=u.style;oe(u,i),f.transform=f.webkitTransform=f.transitionDuration="";const c=u._moveCb=d=>{d&&d.target!==u||(!d||/transform$/.test(d.propertyName))&&(u.removeEventListener("transitionend",c),u._moveCb=null,Pe(u,i))};u.addEventListener("transitionend",c)})}),()=>{const i=pt(e),a=Fa(i);let l=i.tag||Ft;o=s,s=t.default?Or(t.default()):[];for(let u=0;u{i.split(/\s+/).forEach(a=>a&&n.classList.remove(a))}),r.split(/\s+/).forEach(i=>i&&n.classList.add(i)),n.style.display="none";const o=t.nodeType===1?t:t.parentNode;o.appendChild(n);const{hasTransform:s}=Ma(n);return o.removeChild(n),s}const Ae=e=>{const t=e.props["onUpdate:modelValue"];return q(t)?r=>Qe(t,r):t};function Cc(e){e.target.composing=!0}function Ys(e){const t=e.target;t.composing&&(t.composing=!1,Ic(t,"input"))}function Ic(e,t){const r=document.createEvent("HTMLEvents");r.initEvent(t,!0,!0),e.dispatchEvent(r)}const ur={created(e,{modifiers:{lazy:t,trim:r,number:n}},o){e._assign=Ae(o);const s=n||o.props&&o.props.type==="number";ie(e,t?"change":"input",i=>{if(i.target.composing)return;let a=e.value;r?a=a.trim():s&&(a=xe(a)),e._assign(a)}),r&&ie(e,"change",()=>{e.value=e.value.trim()}),t||(ie(e,"compositionstart",Cc),ie(e,"compositionend",Ys),ie(e,"change",Ys))},mounted(e,{value:t}){e.value=t==null?"":t},beforeUpdate(e,{value:t,modifiers:{lazy:r,trim:n,number:o}},s){if(e._assign=Ae(s),e.composing||document.activeElement===e&&(r||n&&e.value.trim()===t||(o||e.type==="number")&&xe(e.value)===t))return;const i=t==null?"":t;e.value!==i&&(e.value=i)}},ko={deep:!0,created(e,t,r){e._assign=Ae(r),ie(e,"change",()=>{const n=e._modelValue,o=on(e),s=e.checked,i=e._assign;if(q(n)){const a=vr(n,o),l=a!==-1;if(s&&!l)i(n.concat(o));else if(!s&&l){const u=[...n];u.splice(a,1),i(u)}}else if($e(n)){const a=new Set(n);s?a.add(o):a.delete(o),i(a)}else i(Ua(e,s))})},mounted:ws,beforeUpdate(e,t,r){e._assign=Ae(r),ws(e,t,r)}};function ws(e,{value:t,oldValue:r},n){e._modelValue=t,q(t)?e.checked=vr(t,n.props.value)>-1:$e(t)?e.checked=t.has(n.props.value):t!==r&&(e.checked=Ee(t,Ua(e,!0)))}const qo={created(e,{value:t},r){e.checked=Ee(t,r.props.value),e._assign=Ae(r),ie(e,"change",()=>{e._assign(on(e))})},beforeUpdate(e,{value:t,oldValue:r},n){e._assign=Ae(n),t!==r&&(e.checked=Ee(t,n.props.value))}},$a={deep:!0,created(e,{value:t,modifiers:{number:r}},n){const o=$e(t);ie(e,"change",()=>{const s=Array.prototype.filter.call(e.options,i=>i.selected).map(i=>r?xe(on(i)):on(i));e._assign(e.multiple?o?new Set(s):s:s[0])}),e._assign=Ae(n)},mounted(e,{value:t}){Gs(e,t)},beforeUpdate(e,t,r){e._assign=Ae(r)},updated(e,{value:t}){Gs(e,t)}};function Gs(e,t){const r=e.multiple;if(!(r&&!q(t)&&!$e(t))){for(let n=0,o=e.options.length;n-1:s.selected=t.has(i);else if(Ee(on(s),t)){e.selectedIndex!==n&&(e.selectedIndex=n);return}}!r&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function on(e){return"_value"in e?e._value:e.value}function Ua(e,t){const r=t?"_trueValue":"_falseValue";return r in e?e[r]:t}const Pc={created(e,t,r){Zn(e,t,r,null,"created")},mounted(e,t,r){Zn(e,t,r,null,"mounted")},beforeUpdate(e,t,r,n){Zn(e,t,r,n,"beforeUpdate")},updated(e,t,r,n){Zn(e,t,r,n,"updated")}};function Zn(e,t,r,n,o){let s;switch(e.tagName){case"SELECT":s=$a;break;case"TEXTAREA":s=ur;break;default:switch(r.props&&r.props.type){case"checkbox":s=ko;break;case"radio":s=qo;break;default:s=ur}}const i=s[o];i&&i(e,t,r,n)}function Nc(){ur.getSSRProps=({value:e})=>({value:e}),qo.getSSRProps=({value:e},t)=>{if(t.props&&Ee(t.props.value,e))return{checked:!0}},ko.getSSRProps=({value:e},t)=>{if(q(e)){if(t.props&&vr(e,t.props.value)>-1)return{checked:!0}}else if($e(e)){if(t.props&&e.has(t.props.value))return{checked:!0}}else if(e)return{checked:!0}}}const Dc=["ctrl","shift","alt","meta"],Fc={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Dc.some(r=>e[`${r}Key`]&&!t.includes(r))},Mc=(e,t)=>(r,...n)=>{for(let o=0;or=>{if(!("key"in r))return;const n=te(r.key);if(t.some(o=>o===n||Bc[o]===n))return e(r)},Ka={beforeMount(e,{value:t},{transition:r}){e._vod=e.style.display==="none"?"":e.style.display,r&&t?r.beforeEnter(e):cn(e,t)},mounted(e,{value:t},{transition:r}){r&&t&&r.enter(e)},updated(e,{value:t,oldValue:r},{transition:n}){!t!=!r&&(n?t?(n.beforeEnter(e),cn(e,!0),n.enter(e)):n.leave(e,()=>{cn(e,!1)}):cn(e,t))},beforeUnmount(e,{value:t}){cn(e,t)}};function cn(e,t){e.style.display=t?e._vod:"none"}function Lc(){Ka.getSSRProps=({value:e})=>{if(!e)return{style:{display:"none"}}}}const Va=At({patchProp:dc},ku);let An,zs=!1;function Ha(){return An||(An=sa(Va))}function Wa(){return An=zs?An:ia(Va),zs=!0,An}const ho=(...e)=>{Ha().render(...e)},Ya=(...e)=>{Wa().hydrate(...e)},_o=(...e)=>{const t=Ha().createApp(...e),{mount:r}=t;return t.mount=n=>{const o=wa(n);if(!o)return;const s=t._component;!nt(s)&&!s.render&&!s.template&&(s.template=o.innerHTML),o.innerHTML="";const i=r(o,!1,o instanceof SVGElement);return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),i},t},$c=(...e)=>{const t=Wa().createApp(...e),{mount:r}=t;return t.mount=n=>{const o=wa(n);if(o)return r(o,!0,o instanceof SVGElement)},t};function wa(e){return Tt(e)?document.querySelector(e):e}let Js=!1;const Uc=()=>{Js||(Js=!0,Nc(),Lc())},Kc=()=>{};var Vc=Object.freeze(Object.defineProperty({__proto__:null,compile:Kc,EffectScope:Oo,ReactiveEffect:jn,customRef:gf,effect:$l,effectScope:Fl,getCurrentScope:Ml,isProxy:Io,isReactive:Me,isReadonly:qe,isRef:Ct,isShallow:Co,markRaw:Po,onScopeDispose:Bl,proxyRefs:Fo,reactive:Ln,readonly:Ro,ref:Be,shallowReactive:bi,shallowReadonly:uf,shallowRef:cf,stop:Ul,toRaw:pt,toRef:Ri,toRefs:Ai,triggerRef:vf,unref:Ti,camelize:Gt,capitalize:Bn,normalizeClass:Fn,normalizeProps:Ol,normalizeStyle:Dn,toDisplayString:kn,toHandlerKey:mn,BaseTransition:Wo,Comment:Lt,Fragment:Ft,KeepAlive:Jf,Static:je,Suspense:Lf,Teleport:vu,Text:en,callWithAsyncErrorHandling:wt,callWithErrorHandling:ee,cloneVNode:le,compatUtils:Zu,computed:Oa,createBlock:Vn,createCommentVNode:ha,createElementBlock:so,createElementVNode:Zt,createHydrationRenderer:ia,createPropsRestProxy:Hu,createRenderer:sa,createSlots:Su,createStaticVNode:Eu,createTextVNode:Xo,createVNode:Ot,defineAsyncComponent:Gf,defineComponent:Yo,defineEmits:ju,defineExpose:Lu,defineProps:Bu,get devtools(){return Je},getCurrentInstance:ue,getTransitionRawChildren:Or,guardReactiveProps:va,h:Aa,handleError:Ve,initCustomFormatter:wu,inject:Sn,isMemoSame:Ca,isRuntimeOnly:Pu,isVNode:Oe,mergeDefaults:Vu,mergeProps:pa,nextTick:Bo,onActivated:Wi,onBeforeMount:Gi,onBeforeUnmount:Kn,onBeforeUpdate:zi,onDeactivated:Yi,onErrorCaptured:Qi,onMounted:He,onRenderTracked:Zi,onRenderTriggered:Xi,onServerPrefetch:Ji,onUnmounted:Rr,onUpdated:Ar,openBlock:be,popScopeId:Li,provide:Ui,pushScopeId:ji,queuePostFlushCb:Lo,registerRuntimeCompiler:Iu,renderList:xu,renderSlot:bu,resolveComponent:la,resolveDirective:gu,resolveDynamicComponent:pu,resolveFilter:Xu,resolveTransitionHooks:_e,setBlockTracking:oo,setDevtoolsHook:Mi,setTransitionHooks:Le,ssrContextKey:Ra,ssrUtils:Ju,toHandlers:Ou,transformVNodeArgs:mu,useAttrs:Ku,useSSRContext:Yu,useSlots:Uu,useTransitionState:Ho,version:Ia,warn:Ci,watch:bn,watchEffect:Hf,watchPostEffect:Ki,watchSyncEffect:Wf,withAsyncContext:Wu,withCtx:Uo,withDefaults:$u,withDirectives:su,withMemo:Gu,withScopeId:Pf,Transition:Qo,TransitionGroup:bc,VueElement:Pr,createApp:_o,createSSRApp:$c,defineCustomElement:Na,defineSSRCustomElement:hc,hydrate:Ya,initDirectivesForSSR:Uc,render:ho,useCssModule:gc,useCssVars:mc,vModelCheckbox:ko,vModelDynamic:Pc,vModelRadio:qo,vModelSelect:$a,vModelText:ur,vShow:Ka,withKeys:jc,withModifiers:Mc},Symbol.toStringTag,{value:"Module"}));function Hc(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function Wc(e){if(e.__esModule)return e;var t=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(e).forEach(function(r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}),t}var ts={exports:{}},Ga=function(t,r){return function(){for(var o=new Array(arguments.length),s=0;s0;)s=n[o],i[s]||(t[s]=e[s],i[s]=!0);e=Object.getPrototypeOf(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t}function ad(e,t,r){e=String(e),(r===void 0||r>e.length)&&(r=e.length),r-=t.length;var n=e.indexOf(t,r);return n!==-1&&n===r}function ld(e){if(!e)return null;var t=e.length;if(cr(t))return null;for(var r=new Array(t);t-- >0;)r[t]=e[t];return r}var fd=function(e){return function(t){return e&&t instanceof e}}(typeof Uint8Array!="undefined"&&Object.getPrototypeOf(Uint8Array)),Mt={isArray:rs,isArrayBuffer:za,isBuffer:wc,isFormData:_c,isArrayBufferView:Gc,isString:zc,isNumber:Jc,isObject:Ja,isPlainObject:tr,isUndefined:cr,isDate:Xc,isFile:Zc,isBlob:Qc,isFunction:os,isStream:qc,isURLSearchParams:td,isStandardBrowserEnv:nd,forEach:ss,merge:po,extend:rd,trim:ed,stripBOM:od,inherits:sd,toFlatObject:id,kindOf:ns,kindOfTest:We,endsWith:ad,toArray:ld,isTypedArray:fd,isFileList:kc},Ye=Mt;function Xs(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}var Xa=function(t,r,n){if(!r)return t;var o;if(n)o=n(r);else if(Ye.isURLSearchParams(r))o=r.toString();else{var s=[];Ye.forEach(r,function(l,u){l===null||typeof l=="undefined"||(Ye.isArray(l)?u=u+"[]":l=[l],Ye.forEach(l,function(c){Ye.isDate(c)?c=c.toISOString():Ye.isObject(c)&&(c=JSON.stringify(c)),s.push(Xs(u)+"="+Xs(c))}))}),o=s.join("&")}if(o){var i=t.indexOf("#");i!==-1&&(t=t.slice(0,i)),t+=(t.indexOf("?")===-1?"?":"&")+o}return t},ud=Mt;function Nr(){this.handlers=[]}Nr.prototype.use=function(t,r,n){return this.handlers.push({fulfilled:t,rejected:r,synchronous:n?n.synchronous:!1,runWhen:n?n.runWhen:null}),this.handlers.length-1};Nr.prototype.eject=function(t){this.handlers[t]&&(this.handlers[t]=null)};Nr.prototype.forEach=function(t){ud.forEach(this.handlers,function(n){n!==null&&t(n)})};var cd=Nr,dd=Mt,vd=function(t,r){dd.forEach(t,function(o,s){s!==r&&s.toUpperCase()===r.toUpperCase()&&(t[r]=o,delete t[s])})},Za=Mt;function sn(e,t,r,n,o){Error.call(this),this.message=e,this.name="AxiosError",t&&(this.code=t),r&&(this.config=r),n&&(this.request=n),o&&(this.response=o)}Za.inherits(sn,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code,status:this.response&&this.response.status?this.response.status:null}}});var Qa=sn.prototype,ka={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED"].forEach(function(e){ka[e]={value:e}});Object.defineProperties(sn,ka);Object.defineProperty(Qa,"isAxiosError",{value:!0});sn.from=function(e,t,r,n,o,s){var i=Object.create(Qa);return Za.toFlatObject(e,i,function(l){return l!==Error.prototype}),sn.call(i,e.message,t,r,n,o),i.name=e.name,s&&Object.assign(i,s),i};var fn=sn,qa={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Xt=Mt;function hd(e,t){t=t||new FormData;var r=[];function n(s){return s===null?"":Xt.isDate(s)?s.toISOString():Xt.isArrayBuffer(s)||Xt.isTypedArray(s)?typeof Blob=="function"?new Blob([s]):Buffer.from(s):s}function o(s,i){if(Xt.isPlainObject(s)||Xt.isArray(s)){if(r.indexOf(s)!==-1)throw Error("Circular reference detected in "+i);r.push(s),Xt.forEach(s,function(l,u){if(!Xt.isUndefined(l)){var f=i?i+"."+u:u,c;if(l&&!i&&typeof l=="object"){if(Xt.endsWith(u,"{}"))l=JSON.stringify(l);else if(Xt.endsWith(u,"[]")&&(c=Xt.toArray(l))){c.forEach(function(d){!Xt.isUndefined(d)&&t.append(f,n(d))});return}}o(l,f)}}),r.pop()}else t.append(i,n(s))}return o(e),t}var _a=hd,Yr=fn,pd=function(t,r,n){var o=n.config.validateStatus;!n.status||!o||o(n.status)?t(n):r(new Yr("Request failed with status code "+n.status,[Yr.ERR_BAD_REQUEST,Yr.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))},Qn=Mt,gd=Qn.isStandardBrowserEnv()?function(){return{write:function(r,n,o,s,i,a){var l=[];l.push(r+"="+encodeURIComponent(n)),Qn.isNumber(o)&&l.push("expires="+new Date(o).toGMTString()),Qn.isString(s)&&l.push("path="+s),Qn.isString(i)&&l.push("domain="+i),a===!0&&l.push("secure"),document.cookie=l.join("; ")},read:function(r){var n=document.cookie.match(new RegExp("(^|;\\s*)("+r+")=([^;]*)"));return n?decodeURIComponent(n[3]):null},remove:function(r){this.write(r,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}(),md=function(t){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)},yd=function(t,r){return r?t.replace(/\/+$/,"")+"/"+r.replace(/^\/+/,""):t},Ed=md,xd=yd,tl=function(t,r){return t&&!Ed(r)?xd(t,r):r},wr=Mt,Sd=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"],bd=function(t){var r={},n,o,s;return t&&wr.forEach(t.split(` -`),function(a){if(s=a.indexOf(":"),n=wr.trim(a.substr(0,s)).toLowerCase(),o=wr.trim(a.substr(s+1)),n){if(r[n]&&Sd.indexOf(n)>=0)return;n==="set-cookie"?r[n]=(r[n]?r[n]:[]).concat([o]):r[n]=r[n]?r[n]+", "+o:o}}),r},Zs=Mt,Od=Zs.isStandardBrowserEnv()?function(){var t=/(msie|trident)/i.test(navigator.userAgent),r=document.createElement("a"),n;function o(s){var i=s;return t&&(r.setAttribute("href",i),i=r.href),r.setAttribute("href",i),{href:r.href,protocol:r.protocol?r.protocol.replace(/:$/,""):"",host:r.host,search:r.search?r.search.replace(/^\?/,""):"",hash:r.hash?r.hash.replace(/^#/,""):"",hostname:r.hostname,port:r.port,pathname:r.pathname.charAt(0)==="/"?r.pathname:"/"+r.pathname}}return n=o(window.location.href),function(i){var a=Zs.isString(i)?o(i):i;return a.protocol===n.protocol&&a.host===n.host}}():function(){return function(){return!0}}(),go=fn,Td=Mt;function el(e){go.call(this,e==null?"canceled":e,go.ERR_CANCELED),this.name="CanceledError"}Td.inherits(el,go,{__CANCEL__:!0});var Dr=el,Ad=function(t){var r=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return r&&r[1]||""},dn=Mt,Rd=pd,Cd=gd,Id=Xa,Pd=tl,Nd=bd,Dd=Od,Fd=qa,re=fn,Md=Dr,Bd=Ad,Qs=function(t){return new Promise(function(n,o){var s=t.data,i=t.headers,a=t.responseType,l;function u(){t.cancelToken&&t.cancelToken.unsubscribe(l),t.signal&&t.signal.removeEventListener("abort",l)}dn.isFormData(s)&&dn.isStandardBrowserEnv()&&delete i["Content-Type"];var f=new XMLHttpRequest;if(t.auth){var c=t.auth.username||"",d=t.auth.password?unescape(encodeURIComponent(t.auth.password)):"";i.Authorization="Basic "+btoa(c+":"+d)}var v=Pd(t.baseURL,t.url);f.open(t.method.toUpperCase(),Id(v,t.params,t.paramsSerializer),!0),f.timeout=t.timeout;function g(){if(!!f){var p="getAllResponseHeaders"in f?Nd(f.getAllResponseHeaders()):null,h=!a||a==="text"||a==="json"?f.responseText:f.response,x={data:h,status:f.status,statusText:f.statusText,headers:p,config:t,request:f};Rd(function(I){n(I),u()},function(I){o(I),u()},x),f=null}}if("onloadend"in f?f.onloadend=g:f.onreadystatechange=function(){!f||f.readyState!==4||f.status===0&&!(f.responseURL&&f.responseURL.indexOf("file:")===0)||setTimeout(g)},f.onabort=function(){!f||(o(new re("Request aborted",re.ECONNABORTED,t,f)),f=null)},f.onerror=function(){o(new re("Network Error",re.ERR_NETWORK,t,f,f)),f=null},f.ontimeout=function(){var h=t.timeout?"timeout of "+t.timeout+"ms exceeded":"timeout exceeded",x=t.transitional||Fd;t.timeoutErrorMessage&&(h=t.timeoutErrorMessage),o(new re(h,x.clarifyTimeoutError?re.ETIMEDOUT:re.ECONNABORTED,t,f)),f=null},dn.isStandardBrowserEnv()){var y=(t.withCredentials||Dd(v))&&t.xsrfCookieName?Cd.read(t.xsrfCookieName):void 0;y&&(i[t.xsrfHeaderName]=y)}"setRequestHeader"in f&&dn.forEach(i,function(h,x){typeof s=="undefined"&&x.toLowerCase()==="content-type"?delete i[x]:f.setRequestHeader(x,h)}),dn.isUndefined(t.withCredentials)||(f.withCredentials=!!t.withCredentials),a&&a!=="json"&&(f.responseType=t.responseType),typeof t.onDownloadProgress=="function"&&f.addEventListener("progress",t.onDownloadProgress),typeof t.onUploadProgress=="function"&&f.upload&&f.upload.addEventListener("progress",t.onUploadProgress),(t.cancelToken||t.signal)&&(l=function(p){!f||(o(!p||p&&p.type?new Md:p),f.abort(),f=null)},t.cancelToken&&t.cancelToken.subscribe(l),t.signal&&(t.signal.aborted?l():t.signal.addEventListener("abort",l))),s||(s=null);var m=Bd(v);if(m&&["http","https","file"].indexOf(m)===-1){o(new re("Unsupported protocol "+m+":",re.ERR_BAD_REQUEST,t));return}f.send(s)})},jd=null,Nt=Mt,ks=vd,qs=fn,Ld=qa,$d=_a,Ud={"Content-Type":"application/x-www-form-urlencoded"};function _s(e,t){!Nt.isUndefined(e)&&Nt.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}function Kd(){var e;return(typeof XMLHttpRequest!="undefined"||typeof process!="undefined"&&Object.prototype.toString.call(process)==="[object process]")&&(e=Qs),e}function Vd(e,t,r){if(Nt.isString(e))try{return(t||JSON.parse)(e),Nt.trim(e)}catch(n){if(n.name!=="SyntaxError")throw n}return(r||JSON.stringify)(e)}var Fr={transitional:Ld,adapter:Kd(),transformRequest:[function(t,r){if(ks(r,"Accept"),ks(r,"Content-Type"),Nt.isFormData(t)||Nt.isArrayBuffer(t)||Nt.isBuffer(t)||Nt.isStream(t)||Nt.isFile(t)||Nt.isBlob(t))return t;if(Nt.isArrayBufferView(t))return t.buffer;if(Nt.isURLSearchParams(t))return _s(r,"application/x-www-form-urlencoded;charset=utf-8"),t.toString();var n=Nt.isObject(t),o=r&&r["Content-Type"],s;if((s=Nt.isFileList(t))||n&&o==="multipart/form-data"){var i=this.env&&this.env.FormData;return $d(s?{"files[]":t}:t,i&&new i)}else if(n||o==="application/json")return _s(r,"application/json"),Vd(t);return t}],transformResponse:[function(t){var r=this.transitional||Fr.transitional,n=r&&r.silentJSONParsing,o=r&&r.forcedJSONParsing,s=!n&&this.responseType==="json";if(s||o&&Nt.isString(t)&&t.length)try{return JSON.parse(t)}catch(i){if(s)throw i.name==="SyntaxError"?qs.from(i,qs.ERR_BAD_RESPONSE,this,null,this.response):i}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:jd},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};Nt.forEach(["delete","get","head"],function(t){Fr.headers[t]={}});Nt.forEach(["post","put","patch"],function(t){Fr.headers[t]=Nt.merge(Ud)});var is=Fr,Hd=Mt,Wd=is,Yd=function(t,r,n){var o=this||Wd;return Hd.forEach(n,function(i){t=i.call(o,t,r)}),t},nl=function(t){return!!(t&&t.__CANCEL__)},ti=Mt,Gr=Yd,wd=nl,Gd=is,zd=Dr;function zr(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new zd}var Jd=function(t){zr(t),t.headers=t.headers||{},t.data=Gr.call(t,t.data,t.headers,t.transformRequest),t.headers=ti.merge(t.headers.common||{},t.headers[t.method]||{},t.headers),ti.forEach(["delete","get","head","post","put","patch","common"],function(o){delete t.headers[o]});var r=t.adapter||Gd.adapter;return r(t).then(function(o){return zr(t),o.data=Gr.call(t,o.data,o.headers,t.transformResponse),o},function(o){return wd(o)||(zr(t),o&&o.response&&(o.response.data=Gr.call(t,o.response.data,o.response.headers,t.transformResponse))),Promise.reject(o)})},Vt=Mt,rl=function(t,r){r=r||{};var n={};function o(f,c){return Vt.isPlainObject(f)&&Vt.isPlainObject(c)?Vt.merge(f,c):Vt.isPlainObject(c)?Vt.merge({},c):Vt.isArray(c)?c.slice():c}function s(f){if(Vt.isUndefined(r[f])){if(!Vt.isUndefined(t[f]))return o(void 0,t[f])}else return o(t[f],r[f])}function i(f){if(!Vt.isUndefined(r[f]))return o(void 0,r[f])}function a(f){if(Vt.isUndefined(r[f])){if(!Vt.isUndefined(t[f]))return o(void 0,t[f])}else return o(void 0,r[f])}function l(f){if(f in r)return o(t[f],r[f]);if(f in t)return o(void 0,t[f])}var u={url:i,method:i,data:i,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:l};return Vt.forEach(Object.keys(t).concat(Object.keys(r)),function(c){var d=u[c]||s,v=d(c);Vt.isUndefined(v)&&d!==l||(n[c]=v)}),n},ol={version:"0.27.2"},Xd=ol.version,ge=fn,as={};["object","boolean","number","function","string","symbol"].forEach(function(e,t){as[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}});var ei={};as.transitional=function(t,r,n){function o(s,i){return"[Axios v"+Xd+"] Transitional option '"+s+"'"+i+(n?". "+n:"")}return function(s,i,a){if(t===!1)throw new ge(o(i," has been removed"+(r?" in "+r:"")),ge.ERR_DEPRECATED);return r&&!ei[i]&&(ei[i]=!0,console.warn(o(i," has been deprecated since v"+r+" and will be removed in the near future"))),t?t(s,i,a):!0}};function Zd(e,t,r){if(typeof e!="object")throw new ge("options must be an object",ge.ERR_BAD_OPTION_VALUE);for(var n=Object.keys(e),o=n.length;o-- >0;){var s=n[o],i=t[s];if(i){var a=e[s],l=a===void 0||i(a,s,e);if(l!==!0)throw new ge("option "+s+" must be "+l,ge.ERR_BAD_OPTION_VALUE);continue}if(r!==!0)throw new ge("Unknown option "+s,ge.ERR_BAD_OPTION)}}var Qd={assertOptions:Zd,validators:as},sl=Mt,kd=Xa,ni=cd,ri=Jd,Mr=rl,qd=tl,il=Qd,we=il.validators;function an(e){this.defaults=e,this.interceptors={request:new ni,response:new ni}}an.prototype.request=function(t,r){typeof t=="string"?(r=r||{},r.url=t):r=t||{},r=Mr(this.defaults,r),r.method?r.method=r.method.toLowerCase():this.defaults.method?r.method=this.defaults.method.toLowerCase():r.method="get";var n=r.transitional;n!==void 0&&il.assertOptions(n,{silentJSONParsing:we.transitional(we.boolean),forcedJSONParsing:we.transitional(we.boolean),clarifyTimeoutError:we.transitional(we.boolean)},!1);var o=[],s=!0;this.interceptors.request.forEach(function(v){typeof v.runWhen=="function"&&v.runWhen(r)===!1||(s=s&&v.synchronous,o.unshift(v.fulfilled,v.rejected))});var i=[];this.interceptors.response.forEach(function(v){i.push(v.fulfilled,v.rejected)});var a;if(!s){var l=[ri,void 0];for(Array.prototype.unshift.apply(l,o),l=l.concat(i),a=Promise.resolve(r);l.length;)a=a.then(l.shift(),l.shift());return a}for(var u=r;o.length;){var f=o.shift(),c=o.shift();try{u=f(u)}catch(d){c(d);break}}try{a=ri(u)}catch(d){return Promise.reject(d)}for(;i.length;)a=a.then(i.shift(),i.shift());return a};an.prototype.getUri=function(t){t=Mr(this.defaults,t);var r=qd(t.baseURL,t.url);return kd(r,t.params,t.paramsSerializer)};sl.forEach(["delete","get","head","options"],function(t){an.prototype[t]=function(r,n){return this.request(Mr(n||{},{method:t,url:r,data:(n||{}).data}))}});sl.forEach(["post","put","patch"],function(t){function r(n){return function(s,i,a){return this.request(Mr(a||{},{method:t,headers:n?{"Content-Type":"multipart/form-data"}:{},url:s,data:i}))}}an.prototype[t]=r(),an.prototype[t+"Form"]=r(!0)});var _d=an,tv=Dr;function ln(e){if(typeof e!="function")throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(o){t=o});var r=this;this.promise.then(function(n){if(!!r._listeners){var o,s=r._listeners.length;for(o=0;o{const r=e.__vccOpts||e;for(const[n,o]of t)r[n]=o;return r};const lv=e=>(ji("data-v-27cc98a0"),e=e(),Li(),e),fv={class:"software-log_shade"},uv=lv(()=>Zt("div",{class:"software-log_shade__bg"},null,-1)),cv={class:"software-log_shade__pannel"},dv={class:"software-log_shade__pannel-title"},vv={class:"software-log_shade__pannel-now"},hv={class:"software-log_shade__pannel-content"},pv=["innerHTML"],gv={class:"software-log_shade__pannel-btn"},mv={props:{title:{type:String,default:"\u65E5\u5FD7\u8BB0\u5F55"},description:{type:String,default:"\u63D2\u4EF6\u5B89\u88C5/\u5378\u8F7D\u8FC7\u7A0B\u4E2D\u8BF7\u52FF\u5237\u65B0\u6B64\u9875\u9762\uFF01"},clearText:{type:String,default:"\u5173\u95ED"},value:{type:String,default:""}},setup(e){const t=e,r=ue(),n=()=>{r&&r.appContext.config.globalProperties.$close()},o=Be(null),s=()=>{o.value&&(o.value.scrollTop=o.value.scrollHeight)},i=Be(!1),a=Be(t.value);return(()=>{if(r){const u=r.appContext.config.globalProperties;u.$setValue=f=>{a.value=f,s()},u.$addValue=f=>{a.value+=f,s()},u.$disabled=f=>{i.value=f}}})(),He(()=>{document.body.setAttribute("lock-scroll","true")}),Kn(()=>{document.body.removeAttribute("lock-scroll")}),(u,f)=>(be(),so("div",fv,[uv,Zt("div",cv,[Zt("div",dv,kn(e.title),1),Zt("div",vv,[Zt("i",null,"\xA0\xA0\xA0\xA0"+kn(e.description),1)]),Zt("div",hv,[Zt("p",{style:{"white-space":"pre-line","text-align":"left",color:"#fff"},innerHTML:a.value},null,8,pv)]),Zt("div",gv,[i.value?(be(),so("button",{key:0,class:"close",onClick:f[0]||(f[0]=c=>n())},kn(e.clearText),1)):ha("",!0)])])]))}};var yv=ll(mv,[["__scopeId","data-v-27cc98a0"]]);const mo=e=>{const t=document.createElement("div");document.body.appendChild(t);const r=_o(yv,{title:e.title,description:e.description,value:e.value});r.config.globalProperties.$close=()=>{n()};const n=()=>{r.unmount(),t.remove(),e.callback&&e.callback()},o=a=>{r.config.globalProperties.$setValue(a)},s=a=>{r.config.globalProperties.$addValue(a)},i=a=>{r.config.globalProperties.$disabled(a)};return r.mount(t),{close:n,setValue:o,addValue:s,setDisabled:i}};var fl={exports:{}},Ev=Wc(Vc);(function(e){e.exports=function(t){var r={};function n(o){if(r[o])return r[o].exports;var s=r[o]={i:o,l:!1,exports:{}};return t[o].call(s.exports,s,s.exports,n),s.l=!0,s.exports}return n.m=t,n.c=r,n.d=function(o,s,i){n.o(o,s)||Object.defineProperty(o,s,{enumerable:!0,get:i})},n.r=function(o){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(o,"__esModule",{value:!0})},n.t=function(o,s){if(s&1&&(o=n(o)),s&8||s&4&&typeof o=="object"&&o&&o.__esModule)return o;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:o}),s&2&&typeof o!="string")for(var a in o)n.d(i,a,function(l){return o[l]}.bind(null,a));return i},n.n=function(o){var s=o&&o.__esModule?function(){return o.default}:function(){return o};return n.d(s,"a",s),s},n.o=function(o,s){return Object.prototype.hasOwnProperty.call(o,s)},n.p="",n(n.s="fb15")}({"0094":function(t,r,n){var o=n("da84"),s=n("e330"),i=n("6964"),a=n("f183"),l=n("6d61"),u=n("acac"),f=n("861d"),c=n("4fad"),d=n("69f3").enforce,v=n("7f9a"),g=!o.ActiveXObject&&"ActiveXObject"in o,y,m=function(O){return function(){return O(this,arguments.length?arguments[0]:void 0)}},p=l("WeakMap",m,u);if(v&&g){y=u.getConstructor(m,"WeakMap",!0),a.enable();var h=p.prototype,x=s(h.delete),A=s(h.has),I=s(h.get),b=s(h.set);i(h,{delete:function(O){if(f(O)&&!c(O)){var S=d(this);return S.frozen||(S.frozen=new y),x(this,O)||S.frozen.delete(O)}return x(this,O)},has:function(S){if(f(S)&&!c(S)){var C=d(this);return C.frozen||(C.frozen=new y),A(this,S)||C.frozen.has(S)}return A(this,S)},get:function(S){if(f(S)&&!c(S)){var C=d(this);return C.frozen||(C.frozen=new y),A(this,S)?I(this,S):C.frozen.get(S)}return I(this,S)},set:function(S,C){if(f(S)&&!c(S)){var T=d(this);T.frozen||(T.frozen=new y),A(this,S)?b(this,S,C):T.frozen.set(S,C)}else b(this,S,C);return this}})}},"00b4":function(t,r,n){n("ac1f");var o=n("23e7"),s=n("c65b"),i=n("e330"),a=n("1626"),l=n("861d"),u=function(){var d=!1,v=/[ac]/;return v.exec=function(){return d=!0,/./.exec.apply(this,arguments)},v.test("abc")===!0&&d}(),f=TypeError,c=i(/./.test);o({target:"RegExp",proto:!0,forced:!u},{test:function(d){var v=this.exec;if(!a(v))return c(this,d);var g=s(v,this,d);if(g!==null&&!l(g))throw new f("RegExp exec method returned something other than an Object or null");return!!g}})},"00ee":function(t,r,n){var o=n("b622"),s=o("toStringTag"),i={};i[s]="z",t.exports=String(i)==="[object z]"},"0366":function(t,r,n){var o=n("e330"),s=n("59ed"),i=n("40d5"),a=o(o.bind);t.exports=function(l,u){return s(l),u===void 0?l:i?a(l,u):function(){return l.apply(u,arguments)}}},"057f":function(t,r,n){var o=n("c6b6"),s=n("fc6a"),i=n("241c").f,a=n("4dae"),l=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],u=function(f){try{return i(f)}catch(c){return a(l)}};t.exports.f=function(c){return l&&o(c)=="Window"?u(c):i(s(c))}},"06c5":function(t,r,n){var o,s,i;n("6c57"),function(a,l){s=[r,n("fb6a"),n("d3b7"),n("b0c0"),n("a630"),n("3ca3"),n("ac1f"),n("00b4"),n("6b75")],o=l,i=typeof o=="function"?o.apply(r,s):o,i!==void 0&&(t.exports=i)}(typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:this,function(a,l,u,f,c,d,v,g,y){Object.defineProperty(a,"__esModule",{value:!0}),a.default=p,y=m(y);function m(h){return h&&h.__esModule?h:{default:h}}function p(h,x){if(!!h){if(typeof h=="string")return(0,y.default)(h,x);var A=Object.prototype.toString.call(h).slice(8,-1);if(A==="Object"&&h.constructor&&(A=h.constructor.name),A==="Map"||A==="Set")return Array.from(h);if(A==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(A))return(0,y.default)(h,x)}}})},"06cf":function(t,r,n){var o=n("83ab"),s=n("c65b"),i=n("d1e7"),a=n("5c6c"),l=n("fc6a"),u=n("a04b"),f=n("1a2d"),c=n("0cfb"),d=Object.getOwnPropertyDescriptor;r.f=o?d:function(g,y){if(g=l(g),y=u(y),c)try{return d(g,y)}catch(m){}if(f(g,y))return a(!s(i.f,g,y),g[y])}},"07fa":function(t,r,n){var o=n("50c4");t.exports=function(s){return o(s.length)}},"0b42":function(t,r,n){var o=n("e8b5"),s=n("68ee"),i=n("861d"),a=n("b622"),l=a("species"),u=Array;t.exports=function(f){var c;return o(f)&&(c=f.constructor,s(c)&&(c===u||o(c.prototype))?c=void 0:i(c)&&(c=c[l],c===null&&(c=void 0))),c===void 0?u:c}},"0cfb":function(t,r,n){var o=n("83ab"),s=n("d039"),i=n("cc12");t.exports=!o&&!s(function(){return Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a!=7})},"0d51":function(t,r){var n=String;t.exports=function(o){try{return n(o)}catch(s){return"Object"}}},"0dd9":function(t,r,n){Object.defineProperty(r,"__esModule",{value:!0}),r.default=a;var o=s(n("d887"));function s(l){return l&&l.__esModule?l:{default:l}}function i(l){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?i=function(f){return typeof f}:i=function(f){return f&&typeof Symbol=="function"&&f.constructor===Symbol&&f!==Symbol.prototype?"symbol":typeof f},i(l)}function a(l,u){(0,o.default)(l);var f,c;i(u)==="object"?(f=u.min||0,c=u.max):(f=arguments[1]||0,c=arguments[2]);var d=l.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g)||[],v=l.length-d.length;return v>=f&&(typeof c=="undefined"||v<=c)}t.exports=r.default,t.exports.default=r.default},"107c":function(t,r,n){var o=n("d039"),s=n("da84"),i=s.RegExp;t.exports=o(function(){var a=i("(?b)","g");return a.exec("b").groups.a!=="b"||"b".replace(a,"$c")!=="bc"})},"10d1":function(t,r,n){n("0094")},"13d2":function(t,r,n){var o=n("d039"),s=n("1626"),i=n("1a2d"),a=n("83ab"),l=n("5e77").CONFIGURABLE,u=n("8925"),f=n("69f3"),c=f.enforce,d=f.get,v=Object.defineProperty,g=a&&!o(function(){return v(function(){},"length",{value:8}).length!==8}),y=String(String).split("String"),m=t.exports=function(p,h,x){String(h).slice(0,7)==="Symbol("&&(h="["+String(h).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),x&&x.getter&&(h="get "+h),x&&x.setter&&(h="set "+h),(!i(p,"name")||l&&p.name!==h)&&v(p,"name",{value:h,configurable:!0}),g&&x&&i(x,"arity")&&p.length!==x.arity&&v(p,"length",{value:x.arity});try{x&&i(x,"constructor")&&x.constructor?a&&v(p,"prototype",{writable:!1}):p.prototype&&(p.prototype=void 0)}catch(I){}var A=c(p);return i(A,"source")||(A.source=y.join(typeof h=="string"?h:"")),p};Function.prototype.toString=m(function(){return s(this)&&d(this).source||u(this)},"toString")},"14c3":function(t,r,n){var o=n("c65b"),s=n("825a"),i=n("1626"),a=n("c6b6"),l=n("9263"),u=TypeError;t.exports=function(f,c){var d=f.exec;if(i(d)){var v=o(d,f,c);return v!==null&&s(v),v}if(a(f)==="RegExp")return o(l,f,c);throw u("RegExp#exec called on incompatible receiver")}},"159b":function(t,r,n){var o=n("da84"),s=n("fdbc"),i=n("785a"),a=n("17c2"),l=n("9112"),u=function(c){if(c&&c.forEach!==a)try{l(c,"forEach",a)}catch(d){c.forEach=a}};for(var f in s)s[f]&&u(o[f]&&o[f].prototype);u(i)},"15fd":function(t,r,n){var o,s,i;n("6c57"),function(a,l){s=[r,n("a4d3"),n("ccb5")],o=l,i=typeof o=="function"?o.apply(r,s):o,i!==void 0&&(t.exports=i)}(typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:this,function(a,l,u){Object.defineProperty(a,"__esModule",{value:!0}),a.default=c,u=f(u);function f(d){return d&&d.__esModule?d:{default:d}}function c(d,v){if(d==null)return{};var g=(0,u.default)(d,v),y,m;if(Object.getOwnPropertySymbols){var p=Object.getOwnPropertySymbols(d);for(m=0;m=0)&&(!Object.prototype.propertyIsEnumerable.call(d,y)||(g[y]=d[y]))}return g}})},"1626":function(t,r){t.exports=function(n){return typeof n=="function"}},"17c2":function(t,r,n){var o=n("b727").forEach,s=n("a640"),i=s("forEach");t.exports=i?[].forEach:function(l){return o(this,l,arguments.length>1?arguments[1]:void 0)}},"19aa":function(t,r,n){var o=n("3a9b"),s=TypeError;t.exports=function(i,a){if(o(a,i))return i;throw s("Incorrect invocation")}},"1a2d":function(t,r,n){var o=n("e330"),s=n("7b0b"),i=o({}.hasOwnProperty);t.exports=Object.hasOwn||function(l,u){return i(s(l),u)}},"1be4":function(t,r,n){var o=n("d066");t.exports=o("document","documentElement")},"1c7e":function(t,r,n){var o=n("b622"),s=o("iterator"),i=!1;try{var a=0,l={next:function(){return{done:!!a++}},return:function(){i=!0}};l[s]=function(){return this},Array.from(l,function(){throw 2})}catch(u){}t.exports=function(u,f){if(!f&&!i)return!1;var c=!1;try{var d={};d[s]=function(){return{next:function(){return{done:c=!0}}}},u(d)}catch(v){}return c}},"1d80":function(t,r){var n=TypeError;t.exports=function(o){if(o==null)throw n("Can't call method on "+o);return o}},"1dde":function(t,r,n){var o=n("d039"),s=n("b622"),i=n("2d00"),a=s("species");t.exports=function(l){return i>=51||!o(function(){var u=[],f=u.constructor={};return f[a]=function(){return{foo:1}},u[l](Boolean).foo!==1})}},"1eb2":function(t,r,n){if(typeof window!="undefined"){var o=window.document.currentScript;{var s=n("8875");o=s(),"currentScript"in document||Object.defineProperty(document,"currentScript",{get:s})}var i=o&&o.src.match(/(.+\/)[^/]+\.js(\?.*)?$/);i&&(n.p=i[1])}},"2266":function(t,r,n){var o=n("0366"),s=n("c65b"),i=n("825a"),a=n("0d51"),l=n("e95a"),u=n("07fa"),f=n("3a9b"),c=n("9a1f"),d=n("35a1"),v=n("2a62"),g=TypeError,y=function(p,h){this.stopped=p,this.result=h},m=y.prototype;t.exports=function(p,h,x){var A=x&&x.that,I=!!(x&&x.AS_ENTRIES),b=!!(x&&x.IS_ITERATOR),O=!!(x&&x.INTERRUPTED),S=o(h,A),C,T,N,P,F,H,w,B=function(j){return C&&v(C,"normal",j),new y(!0,j)},M=function(j){return I?(i(j),O?S(j[0],j[1],B):S(j[0],j[1])):O?S(j,B):S(j)};if(b)C=p;else{if(T=d(p),!T)throw g(a(p)+" is not iterable");if(l(T)){for(N=0,P=u(p);P>N;N++)if(F=M(p[N]),F&&f(m,F))return F;return new y(!1)}C=c(p,T)}for(H=C.next;!(w=s(H,C)).done;){try{F=M(w.value)}catch(j){v(C,"throw",j)}if(typeof F=="object"&&F&&f(m,F))return F}return new y(!1)}},"23cb":function(t,r,n){var o=n("5926"),s=Math.max,i=Math.min;t.exports=function(a,l){var u=o(a);return u<0?s(u+l,0):i(u,l)}},"23e7":function(t,r,n){var o=n("da84"),s=n("06cf").f,i=n("9112"),a=n("cb2d"),l=n("6374"),u=n("e893"),f=n("94ca");t.exports=function(c,d){var v=c.target,g=c.global,y=c.stat,m,p,h,x,A,I;if(g?p=o:y?p=o[v]||l(v,{}):p=(o[v]||{}).prototype,p)for(h in d){if(A=d[h],c.dontCallGetSet?(I=s(p,h),x=I&&I.value):x=p[h],m=f(g?h:v+(y?".":"#")+h,c.forced),!m&&x!==void 0){if(typeof A==typeof x)continue;u(A,x)}(c.sham||x&&x.sham)&&i(A,"sham",!0),a(p,h,A,c)}}},"241c":function(t,r,n){var o=n("ca84"),s=n("7839"),i=s.concat("length","prototype");r.f=Object.getOwnPropertyNames||function(l){return o(l,i)}},"25f0":function(t,r,n){var o=n("5e77").PROPER,s=n("cb2d"),i=n("825a"),a=n("577e"),l=n("d039"),u=n("90d8"),f="toString",c=RegExp.prototype,d=c[f],v=l(function(){return d.call({source:"a",flags:"b"})!="/a/b"}),g=o&&d.name!=f;(v||g)&&s(RegExp.prototype,f,function(){var m=i(this),p=a(m.source),h=a(u(m));return"/"+p+"/"+h},{unsafe:!0})},"2626":function(t,r,n){var o=n("d066"),s=n("9bf2"),i=n("b622"),a=n("83ab"),l=i("species");t.exports=function(u){var f=o(u),c=s.f;a&&f&&!f[l]&&c(f,l,{configurable:!0,get:function(){return this}})}},"2909":function(t,r,n){var o,s,i;n("6c57"),function(a,l){s=[r,n("6005"),n("db90"),n("06c5"),n("3427")],o=l,i=typeof o=="function"?o.apply(r,s):o,i!==void 0&&(t.exports=i)}(typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:this,function(a,l,u,f,c){Object.defineProperty(a,"__esModule",{value:!0}),a.default=v,l=d(l),u=d(u),f=d(f),c=d(c);function d(g){return g&&g.__esModule?g:{default:g}}function v(g){return(0,l.default)(g)||(0,u.default)(g)||(0,f.default)(g)||(0,c.default)()}})},"2a62":function(t,r,n){var o=n("c65b"),s=n("825a"),i=n("dc4a");t.exports=function(a,l,u){var f,c;s(a);try{if(f=i(a,"return"),!f){if(l==="throw")throw u;return u}f=o(f,a)}catch(d){c=!0,f=d}if(l==="throw")throw u;if(c)throw f;return s(f),u}},"2ba4":function(t,r,n){var o=n("40d5"),s=Function.prototype,i=s.apply,a=s.call;t.exports=typeof Reflect=="object"&&Reflect.apply||(o?a.bind(i):function(){return a.apply(i,arguments)})},"2c3e":function(t,r,n){var o=n("83ab"),s=n("9f7f").MISSED_STICKY,i=n("c6b6"),a=n("edd0"),l=n("69f3").get,u=RegExp.prototype,f=TypeError;o&&s&&a(u,"sticky",{configurable:!0,get:function(){if(this!==u){if(i(this)==="RegExp")return!!l(this).sticky;throw f("Incompatible receiver, RegExp required")}}})},"2d00":function(t,r,n){var o=n("da84"),s=n("342f"),i=o.process,a=o.Deno,l=i&&i.versions||a&&a.version,u=l&&l.v8,f,c;u&&(f=u.split("."),c=f[0]>0&&f[0]<4?1:+(f[0]+f[1])),!c&&s&&(f=s.match(/Edge\/(\d+)/),(!f||f[1]>=74)&&(f=s.match(/Chrome\/(\d+)/),f&&(c=+f[1]))),t.exports=c},"33fc":function(t,r,n){},"3427":function(t,r,n){var o,s,i;n("6c57"),function(a,l){s=[r,n("d9e2")],o=l,i=typeof o=="function"?o.apply(r,s):o,i!==void 0&&(t.exports=i)}(typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:this,function(a,l){Object.defineProperty(a,"__esModule",{value:!0}),a.default=u;function u(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}})},"342f":function(t,r,n){var o=n("d066");t.exports=o("navigator","userAgent")||""},"3511":function(t,r){var n=TypeError,o=9007199254740991;t.exports=function(s){if(s>o)throw n("Maximum allowed index exceeded");return s}},"35a1":function(t,r,n){var o=n("f5df"),s=n("dc4a"),i=n("3f8c"),a=n("b622"),l=a("iterator");t.exports=function(u){if(u!=null)return s(u,l)||s(u,"@@iterator")||i[o(u)]}},"37e8":function(t,r,n){var o=n("83ab"),s=n("aed9"),i=n("9bf2"),a=n("825a"),l=n("fc6a"),u=n("df75");r.f=o&&!s?Object.defineProperties:function(c,d){a(c);for(var v=l(d),g=u(d),y=g.length,m=0,p;y>m;)i.f(c,p=g[m++],v[p]);return c}},"3a9b":function(t,r,n){var o=n("e330");t.exports=o({}.isPrototypeOf)},"3bbb":function(t,r,n){var o,s,i;n("6c57"),function(a,l){s=[r,n("d3b7"),n("159b"),n("b64b"),n("2909"),n("e74d")],o=l,i=typeof o=="function"?o.apply(r,s):o,i!==void 0&&(t.exports=i)}(typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:this,function(a,l,u,f,c,d){var v=n("4ea4").default;Object.defineProperty(a,"__esModule",{value:!0}),a.getValidateList=void 0,c=v(c);var g=function(h,x){return x.type==="array"&&x.enum?!h||h.length===0:h===0||h===!1?!1:!h},y=function p(h,x){var A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},I=arguments.length>3?arguments[3]:void 0,b=[],O=A.type,S=A.items,C={value:x,schema:A};if(O==="object"){var T=m(x,A,I);b.push.apply(b,(0,c.default)(T))}else O==="array"&&x.forEach(function(N){var P=p(h,N,S,I);b.push.apply(b,(0,c.default)(P))});return(0,d.validate)(C)&&b.push(h),b},m=function(){var h=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},x=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},A=arguments.length>2?arguments[2]:void 0,I=A||h,b=[],O=x.properties,S=x.required;return S&&S.length>0&&S.forEach(function(C){var T=O&&O[C]||{},N=T["ui:hidden"],P=h&&h[C],F=(0,d.convertValue)(N,I,h);g(P,T)&&!F&&b.push(C)}),O&&h&&Object.keys(h)&&Object.keys(h).length>0&&Object.keys(h).forEach(function(C){var T=h[C],N=O[C]||{},P=y(C,T,N,I);b.push.apply(b,(0,c.default)(P))}),b};a.getValidateList=m})},"3bbe":function(t,r,n){var o=n("1626"),s=String,i=TypeError;t.exports=function(a){if(typeof a=="object"||o(a))return a;throw i("Can't set "+s(a)+" as a prototype")}},"3ca3":function(t,r,n){var o=n("6547").charAt,s=n("577e"),i=n("69f3"),a=n("7dd0"),l="String Iterator",u=i.set,f=i.getterFor(l);a(String,"String",function(c){u(this,{type:l,string:s(c),index:0})},function(){var d=f(this),v=d.string,g=d.index,y;return g>=v.length?{value:void 0,done:!0}:(y=o(v,g),d.index+=y.length,{value:y,done:!1})})},"3d87":function(t,r,n){var o=n("4930");t.exports=o&&!!Symbol.for&&!!Symbol.keyFor},"3f8c":function(t,r){t.exports={}},"408a":function(t,r,n){var o=n("e330");t.exports=o(1 .valueOf)},"40d5":function(t,r,n){var o=n("d039");t.exports=!o(function(){var s=function(){}.bind();return typeof s!="function"||s.hasOwnProperty("prototype")})},"428f":function(t,r,n){var o=n("da84");t.exports=o},"44ad":function(t,r,n){var o=n("e330"),s=n("d039"),i=n("c6b6"),a=Object,l=o("".split);t.exports=s(function(){return!a("z").propertyIsEnumerable(0)})?function(u){return i(u)=="String"?l(u,""):a(u)}:a},"44d2":function(t,r,n){var o=n("b622"),s=n("7c73"),i=n("9bf2").f,a=o("unscopables"),l=Array.prototype;l[a]==null&&i(l,a,{configurable:!0,value:s(null)}),t.exports=function(u){l[a][u]=!0}},"44e7":function(t,r,n){var o=n("861d"),s=n("c6b6"),i=n("b622"),a=i("match");t.exports=function(l){var u;return o(l)&&((u=l[a])!==void 0?!!u:s(l)=="RegExp")}},"466d":function(t,r,n){var o=n("c65b"),s=n("d784"),i=n("825a"),a=n("50c4"),l=n("577e"),u=n("1d80"),f=n("dc4a"),c=n("8aa5"),d=n("14c3");s("match",function(v,g,y){return[function(p){var h=u(this),x=p==null?void 0:f(p,v);return x?o(x,p,h):new RegExp(p)[v](l(h))},function(m){var p=i(this),h=l(m),x=y(g,p,h);if(x.done)return x.value;if(!p.global)return d(p,h);var A=p.unicode;p.lastIndex=0;for(var I=[],b=0,O;(O=d(p,h))!==null;){var S=l(O[0]);I[b]=S,S===""&&(p.lastIndex=c(h,a(p.lastIndex),A)),b++}return b===0?null:I}]})},"485a":function(t,r,n){var o=n("c65b"),s=n("1626"),i=n("861d"),a=TypeError;t.exports=function(l,u){var f,c;if(u==="string"&&s(f=l.toString)&&!i(c=o(f,l))||s(f=l.valueOf)&&!i(c=o(f,l))||u!=="string"&&s(f=l.toString)&&!i(c=o(f,l)))return c;throw a("Can't convert object to primitive value")}},"4930":function(t,r,n){var o=n("2d00"),s=n("d039");t.exports=!!Object.getOwnPropertySymbols&&!s(function(){var i=Symbol();return!String(i)||!(Object(i)instanceof Symbol)||!Symbol.sham&&o&&o<41})},"498a":function(t,r,n){var o=n("23e7"),s=n("58a8").trim,i=n("c8d2");o({target:"String",proto:!0,forced:i("trim")},{trim:function(){return s(this)}})},"4d63":function(t,r,n){var o=n("83ab"),s=n("da84"),i=n("e330"),a=n("94ca"),l=n("7156"),u=n("9112"),f=n("241c").f,c=n("3a9b"),d=n("44e7"),v=n("577e"),g=n("90d8"),y=n("9f7f"),m=n("aeb0"),p=n("cb2d"),h=n("d039"),x=n("1a2d"),A=n("69f3").enforce,I=n("2626"),b=n("b622"),O=n("fce3"),S=n("107c"),C=b("match"),T=s.RegExp,N=T.prototype,P=s.SyntaxError,F=i(N.exec),H=i("".charAt),w=i("".replace),B=i("".indexOf),M=i("".slice),j=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,G=/a/g,st=/a/g,et=new T(G)!==G,rt=y.MISSED_STICKY,gt=y.UNSUPPORTED_Y,z=o&&(!et||rt||O||S||h(function(){return st[C]=!1,T(G)!=G||T(st)==st||T(G,"i")!="/a/i"})),_=function(ct){for(var it=ct.length,ft=0,E="",R=!1,D;ft<=it;ft++){if(D=H(ct,ft),D==="\\"){E+=D+H(ct,++ft);continue}!R&&D==="."?E+="[\\s\\S]":(D==="["?R=!0:D==="]"&&(R=!1),E+=D)}return E},lt=function(ct){for(var it=ct.length,ft=0,E="",R=[],D={},L=!1,$=!1,W=0,V="",U;ft<=it;ft++){if(U=H(ct,ft),U==="\\")U=U+H(ct,++ft);else if(U==="]")L=!1;else if(!L)switch(!0){case U==="[":L=!0;break;case U==="(":F(j,M(ct,ft+1))&&(ft+=2,$=!0),E+=U,W++;continue;case(U===">"&&$):if(V===""||x(D,V))throw new P("Invalid capture group name");D[V]=!0,R[R.length]=[V,W],$=!1,V="";continue}$?V+=U:E+=U}return[E,R]};if(a("RegExp",z)){for(var Q=function(it,ft){var E=c(N,this),R=d(it),D=ft===void 0,L=[],$=it,W,V,U,Y,K,X;if(!E&&R&&D&&it.constructor===Q)return it;if((R||c(N,it))&&(it=it.source,D&&(ft=g($))),it=it===void 0?"":v(it),ft=ft===void 0?"":v(ft),$=it,O&&"dotAll"in G&&(V=!!ft&&B(ft,"s")>-1,V&&(ft=w(ft,/s/g,""))),W=ft,rt&&"sticky"in G&&(U=!!ft&&B(ft,"y")>-1,U&>&&(ft=w(ft,/y/g,""))),S&&(Y=lt(it),it=Y[0],L=Y[1]),K=l(T(it,ft),E?this:N,Q),(V||U||L.length)&&(X=A(K),V&&(X.dotAll=!0,X.raw=Q(_(it),W)),U&&(X.sticky=!0),L.length&&(X.groups=L)),it!==$)try{u(K,"source",$===""?"(?:)":$)}catch(J){}return K},Z=f(T),yt=0;Z.length>yt;)m(Q,T,Z[yt++]);N.constructor=Q,Q.prototype=N,p(s,"RegExp",Q,{constructor:!0})}I("RegExp")},"4d64":function(t,r,n){var o=n("fc6a"),s=n("23cb"),i=n("07fa"),a=function(l){return function(u,f,c){var d=o(u),v=i(d),g=s(c,v),y;if(l&&f!=f){for(;v>g;)if(y=d[g++],y!=y)return!0}else for(;v>g;g++)if((l||g in d)&&d[g]===f)return l||g||0;return!l&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},"4dae":function(t,r,n){var o=n("23cb"),s=n("07fa"),i=n("8418"),a=Array,l=Math.max;t.exports=function(u,f,c){for(var d=s(u),v=o(f,d),g=o(c===void 0?d:c,d),y=a(l(g-v,0)),m=0;v1?arguments[1]:void 0)}})},"4df4":function(t,r,n){var o=n("0366"),s=n("c65b"),i=n("7b0b"),a=n("9bdd"),l=n("e95a"),u=n("68ee"),f=n("07fa"),c=n("8418"),d=n("9a1f"),v=n("35a1"),g=Array;t.exports=function(m){var p=i(m),h=u(this),x=arguments.length,A=x>1?arguments[1]:void 0,I=A!==void 0;I&&(A=o(A,x>2?arguments[2]:void 0));var b=v(p),O=0,S,C,T,N,P,F;if(b&&!(this===g&&l(b)))for(N=d(p,b),P=N.next,C=h?new this:[];!(T=s(P,N)).done;O++)F=I?a(N,A,[T.value,O],!0):T.value,c(C,O,F);else for(S=f(p),C=h?new this(S):g(S);S>O;O++)F=I?A(p[O],O):p[O],c(C,O,F);return C.length=O,C}},"4ea4":function(t,r){function n(o){return o&&o.__esModule?o:{default:o}}t.exports=n,t.exports.__esModule=!0,t.exports.default=t.exports},"4fad":function(t,r,n){var o=n("d039"),s=n("861d"),i=n("c6b6"),a=n("d86b"),l=Object.isExtensible,u=o(function(){});t.exports=u||a?function(c){return!s(c)||a&&i(c)=="ArrayBuffer"?!1:l?l(c):!0}:l},"5092":function(t,r,n){var o,s,i;n("6c57"),function(a,l){s=[r,n("8bbf"),n("a9e3"),n("b0c0"),n("a4d3"),n("e01a"),n("e74d")],o=l,i=typeof o=="function"?o.apply(r,s):o,i!==void 0&&(t.exports=i)}(typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:this,function(a,l,u,f,c,d,v){var g=n("dbce").default;Object.defineProperty(a,"__esModule",{value:!0}),a.default=void 0,l=g(l);var y={props:{schema:Object,formData:Object,name:String,onChange:Function,value:[String,Number,Boolean,Object],disabled:Boolean,readOnly:Boolean,invalidText:String},setup:function(p){var h=(0,l.toRefs)(p),x=h.schema,A=h.onChange,I=h.name,b=h.value,O=h.style,S=function(T){A.value(I.value,T.target.checked)};return function(){var C=x.value["ui:options"];return l.createVNode("div",{className:"cbi-value",style:O},[l.createVNode("div",null,[l.createVNode("label",{className:"cbi-value-title"},[(0,v.i18n)(p.schema.title)]),l.createVNode("div",{class:"cbi-value-field"},[l.createVNode("div",{class:"cbi-checkbox"},[l.createVNode("input",{type:"checkbox",checked:b.value,onClick:S},null)]),(C==null?void 0:C.description)&&l.createVNode(l.Fragment,null,[l.createVNode("br",null,null),l.createVNode("div",{class:"cbi-value-description",innerHTML:(0,v.i18n)(C.description)},null)])])])])}}};a.default=y})},"50c4":function(t,r,n){var o=n("5926"),s=Math.min;t.exports=function(i){return i>0?s(o(i),9007199254740991):0}},"53ca":function(t,r,n){var o,s,i;n("6c57"),function(a,l){s=[r,n("a4d3"),n("e01a"),n("d3b7"),n("d28b"),n("e260"),n("3ca3"),n("ddb0")],o=l,i=typeof o=="function"?o.apply(r,s):o,i!==void 0&&(t.exports=i)}(typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:this,function(a,l,u,f,c,d,v,g){Object.defineProperty(a,"__esModule",{value:!0}),a.default=y;function y(m){return a.default=y=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(p){return typeof p}:function(p){return p&&typeof Symbol=="function"&&p.constructor===Symbol&&p!==Symbol.prototype?"symbol":typeof p},y(m)}})},"5530":function(t,r,n){var o,s,i;n("6c57"),function(a,l){s=[r,n("b64b"),n("a4d3"),n("4de4"),n("d3b7"),n("e439"),n("159b"),n("dbb4"),n("ade3")],o=l,i=typeof o=="function"?o.apply(r,s):o,i!==void 0&&(t.exports=i)}(typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:this,function(a,l,u,f,c,d,v,g,y){Object.defineProperty(a,"__esModule",{value:!0}),a.default=h,y=m(y);function m(x){return x&&x.__esModule?x:{default:x}}function p(x,A){var I=Object.keys(x);if(Object.getOwnPropertySymbols){var b=Object.getOwnPropertySymbols(x);A&&(b=b.filter(function(O){return Object.getOwnPropertyDescriptor(x,O).enumerable})),I.push.apply(I,b)}return I}function h(x){for(var A=1;A=p?d?"":void 0:(h=u(y,m),h<55296||h>56319||m+1===p||(x=u(y,m+1))<56320||x>57343?d?l(y,m):h:d?f(y,m,m+2):(h-55296<<10)+(x-56320)+65536)}};t.exports={codeAt:c(!1),charAt:c(!0)}},"65f0":function(t,r,n){var o=n("0b42");t.exports=function(s,i){return new(o(s))(i===0?0:i)}},"68ee":function(t,r,n){var o=n("e330"),s=n("d039"),i=n("1626"),a=n("f5df"),l=n("d066"),u=n("8925"),f=function(){},c=[],d=l("Reflect","construct"),v=/^\s*(?:class|function)\b/,g=o(v.exec),y=!v.exec(f),m=function(x){if(!i(x))return!1;try{return d(f,c,x),!0}catch(A){return!1}},p=function(x){if(!i(x))return!1;switch(a(x)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return y||!!g(v,u(x))}catch(A){return!0}};p.sham=!0,t.exports=!d||s(function(){var h;return m(m.call)||!m(Object)||!m(function(){h=!0})||h})?p:m},"6964":function(t,r,n){var o=n("cb2d");t.exports=function(s,i,a){for(var l in i)o(s,l,i[l],a);return s}},"69f3":function(t,r,n){var o=n("7f9a"),s=n("da84"),i=n("e330"),a=n("861d"),l=n("9112"),u=n("1a2d"),f=n("c6cd"),c=n("f772"),d=n("d012"),v="Object already initialized",g=s.TypeError,y=s.WeakMap,m,p,h,x=function(T){return h(T)?p(T):m(T,{})},A=function(T){return function(N){var P;if(!a(N)||(P=p(N)).type!==T)throw g("Incompatible receiver, "+T+" required");return P}};if(o||f.state){var I=f.state||(f.state=new y),b=i(I.get),O=i(I.has),S=i(I.set);m=function(T,N){if(O(I,T))throw new g(v);return N.facade=T,S(I,T,N),N},p=function(T){return b(I,T)||{}},h=function(T){return O(I,T)}}else{var C=c("state");d[C]=!0,m=function(T,N){if(u(T,C))throw new g(v);return N.facade=T,l(T,C,N),N},p=function(T){return u(T,C)?T[C]:{}},h=function(T){return u(T,C)}}t.exports={set:m,get:p,has:h,enforce:x,getterFor:A}},"6b75":function(t,r,n){var o,s,i;n("6c57"),function(a,l){s=[r],o=l,i=typeof o=="function"?o.apply(r,s):o,i!==void 0&&(t.exports=i)}(typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:this,function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.default=l;function l(u,f){(f==null||f>u.length)&&(f=u.length);for(var c=0,d=new Array(f);c",d="<",v="prototype",g="script",y=f("IE_PROTO"),m=function(){},p=function(b){return d+g+c+b+d+"/"+g+c},h=function(b){b.write(p("")),b.close();var O=b.parentWindow.Object;return b=null,O},x=function(){var b=u("iframe"),O="java"+g+":",S;return b.style.display="none",l.appendChild(b),b.src=String(O),S=b.contentWindow.document,S.open(),S.write(p("document.F=Object")),S.close(),S.F},A,I=function(){try{A=new ActiveXObject("htmlfile")}catch(O){}I=typeof document!="undefined"?document.domain&&A?h(A):x():h(A);for(var b=i.length;b--;)delete I[v][i[b]];return I()};a[y]=!0,t.exports=Object.create||function(O,S){var C;return O!==null?(m[v]=o(O),C=new m,m[v]=null,C[y]=O):C=I(),S===void 0?C:s.f(C,S)}},"7db0":function(t,r,n){var o=n("23e7"),s=n("b727").find,i=n("44d2"),a="find",l=!0;a in[]&&Array(1)[a](function(){l=!1}),o({target:"Array",proto:!0,forced:l},{find:function(f){return s(this,f,arguments.length>1?arguments[1]:void 0)}}),i(a)},"7dd0":function(t,r,n){var o=n("23e7"),s=n("c65b"),i=n("c430"),a=n("5e77"),l=n("1626"),u=n("9ed3"),f=n("e163"),c=n("d2bb"),d=n("d44e"),v=n("9112"),g=n("cb2d"),y=n("b622"),m=n("3f8c"),p=n("ae93"),h=a.PROPER,x=a.CONFIGURABLE,A=p.IteratorPrototype,I=p.BUGGY_SAFARI_ITERATORS,b=y("iterator"),O="keys",S="values",C="entries",T=function(){return this};t.exports=function(N,P,F,H,w,B,M){u(F,P,H);var j=function(Z){if(Z===w&>)return gt;if(!I&&Z in et)return et[Z];switch(Z){case O:return function(){return new F(this,Z)};case S:return function(){return new F(this,Z)};case C:return function(){return new F(this,Z)}}return function(){return new F(this)}},G=P+" Iterator",st=!1,et=N.prototype,rt=et[b]||et["@@iterator"]||w&&et[w],gt=!I&&rt||j(w),z=P=="Array"&&et.entries||rt,_,lt,Q;if(z&&(_=f(z.call(new N)),_!==Object.prototype&&_.next&&(!i&&f(_)!==A&&(c?c(_,A):l(_[b])||g(_,b,T)),d(_,G,!0,!0),i&&(m[G]=T))),h&&w==S&&rt&&rt.name!==S&&(!i&&x?v(et,"name",S):(st=!0,gt=function(){return s(rt,this)})),w)if(lt={values:j(S),keys:B?gt:j(O),entries:j(C)},M)for(Q in lt)(I||st||!(Q in et))&&g(et,Q,lt[Q]);else o({target:P,proto:!0,forced:I||st},lt);return(!i||M)&&et[b]!==gt&&g(et,b,gt,{name:w}),m[P]=gt,lt}},"7f9a":function(t,r,n){var o=n("da84"),s=n("1626"),i=n("8925"),a=o.WeakMap;t.exports=s(a)&&/native code/.test(i(a))},"825a":function(t,r,n){var o=n("861d"),s=String,i=TypeError;t.exports=function(a){if(o(a))return a;throw i(s(a)+" is not an object")}},"83ab":function(t,r,n){var o=n("d039");t.exports=!o(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})},"8418":function(t,r,n){var o=n("a04b"),s=n("9bf2"),i=n("5c6c");t.exports=function(a,l,u){var f=o(l);f in a?s.f(a,f,i(0,u)):a[f]=u}},"861d":function(t,r,n){var o=n("1626");t.exports=function(s){return typeof s=="object"?s!==null:o(s)}},"8875":function(t,r,n){var o,s,i;(function(a,l){s=[],o=l,i=typeof o=="function"?o.apply(r,s):o,i!==void 0&&(t.exports=i)})(typeof self!="undefined"?self:this,function(){function a(){var l=Object.getOwnPropertyDescriptor(document,"currentScript");if(!l&&"currentScript"in document&&document.currentScript||l&&l.get!==a&&document.currentScript)return document.currentScript;try{throw new Error}catch(A){var u=/.*at [^(]*\((.*):(.+):(.+)\)$/ig,f=/@([^@]*):(\d+):(\d+)\s*$/ig,c=u.exec(A.stack)||f.exec(A.stack),d=c&&c[1]||!1,v=c&&c[2]||!1,g=document.location.href.replace(document.location.hash,""),y,m,p,h=document.getElementsByTagName("script");d===g&&(y=document.documentElement.outerHTML,m=new RegExp("(?:[^\\n]+?\\n){0,"+(v-2)+"}[^<]*