diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 00000000..f9456b13 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,43 @@ +{ + "name": "SeaBlock Wiki Development", + "image": "mcr.microsoft.com/devcontainers/typescript-node:18", + "features": { + "ghcr.io/devcontainers/features/git:1": {}, + "ghcr.io/devcontainers/features/github-cli:1": {} + }, + "customizations": { + "vscode": { + "extensions": [ + "vue.volar", + "vue.vscode-typescript-vue-plugin", + "bradlc.vscode-tailwindcss", + "esbenp.prettier-vscode", + "ms-vscode.vscode-json", + "yzhang.markdown-all-in-one", + "ms-vscode.vscode-markdown" + ], + "settings": { + "editor.formatOnSave": true, + "editor.defaultFormatter": "esbenp.prettier-vscode", + "typescript.preferences.importModuleSpecifier": "relative", + "vue.codeActions.enabled": true, + "vue.complete.casing.tags": "kebab", + "vue.complete.casing.props": "camel" + } + } + }, + "postCreateCommand": "bash .devcontainer/setup.sh", + "forwardPorts": [5173, 3000], + "portsAttributes": { + "5173": { + "label": "VitePress Dev Server", + "onAutoForward": "notify" + }, + "3000": { + "label": "WYSIWYG Editor", + "onAutoForward": "notify" + } + }, + "remoteUser": "node" +} + diff --git a/.devcontainer/setup.sh b/.devcontainer/setup.sh new file mode 100755 index 00000000..adbcbb59 --- /dev/null +++ b/.devcontainer/setup.sh @@ -0,0 +1,37 @@ +#!/bin/bash + +# SeaBlock Wiki Development Environment Setup +echo "🚀 Setting up SeaBlock Wiki development environment..." + +# Update npm to latest version +npm install -g npm@latest + +# Install VitePress globally for CLI access +npm install -g vitepress@latest + +# Install project dependencies +echo "📦 Installing project dependencies..." +npm install + +# Create necessary directories +echo "📁 Creating project structure..." +mkdir -p content +mkdir -p assets/js +mkdir -p assets/css +mkdir -p .github/workflows + +# Set up git hooks (optional) +echo "🔧 Setting up development tools..." + +# Make scripts executable +chmod +x dev.sh 2>/dev/null || true + +echo "✅ Development environment setup complete!" +echo "" +echo "Next steps:" +echo "1. Run 'npm run dev' to start the VitePress development server" +echo "2. Run 'npm run build:browser' to build the browser bundle" +echo "3. Run 'npm run dev:editor' to start the WYSIWYG editor" +echo "" +echo "Happy coding! 🎉" + diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 00000000..34e40b13 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,25 @@ +module.exports = { + root: true, + env: { + browser: true, + es2021: true, + node: true + }, + extends: [ + 'eslint:recommended', + '@vue/eslint-config-typescript', + 'plugin:vue/vue3-recommended' + ], + parserOptions: { + ecmaVersion: 'latest', + sourceType: 'module' + }, + rules: { + 'vue/multi-word-component-names': 'off', + 'vue/no-v-html': 'off', + '@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_' }], + 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', + 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off' + } +} + diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 00000000..20778497 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,54 @@ +name: Deploy to GitHub Pages + +on: + push: + branches: [wiki] + pull_request: + branches: [wiki] + +permissions: + contents: read + pages: write + id-token: write + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '18' + cache: 'npm' + + - name: Install dependencies + run: npm ci + + - name: Build VitePress site + run: npm run build + + - name: Set up Pages + id: pages + uses: actions/configure-pages@v5 + + - name: Upload artifact + uses: actions/upload-pages-artifact@v4 + with: + path: ./docs/.vitepress/dist/ + + deploy: + runs-on: ubuntu-latest + needs: build + if: github.ref == 'refs/heads/wiki' + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..ff5c9659 --- /dev/null +++ b/.gitignore @@ -0,0 +1,145 @@ +# Dependencies +node_modules/ +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Build outputs +dist/ +.vitepress/dist/ +.vitepress/cache/ + +# VitePress build outputs +docs/.vitepress/dist/ +docs/.vitepress/cache/ + +/assets/js/ +/assets/css/ + +# Test output files +test/comparison-*.html +test/live-comparison-report.json +test/vitepress.html +test/webbrowser.html + +# Environment variables +.env +.env.local +.env.development.local +.env.test.local +.env.production.local + +# IDE and editor files +.vscode/ +.idea/ +*.swp +*.swo +*~ + +# OS generated files +.DS_Store +.DS_Store? +._* +.Spotlight-V100 +.Trashes +ehthumbs.db +Thumbs.db + +# Logs +logs +*.log + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Coverage directory used by tools like istanbul +coverage/ + +# nyc test coverage +.nyc_output + +# Dependency directories +jspm_packages/ + +# Optional npm cache directory +.npm + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# next.js build output +.next + +# nuxt.js build output +.nuxt + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# Temporary files +*.tmp +*.temp +.tmp/ +.temp/ + +# Backup files +*.bak +*.backup +*~ + +# Lock files (keep package-lock.json but ignore others) +yarn.lock +pnpm-lock.yaml + +# TypeScript build info +*.tsbuildinfo + +# ESLint cache +.eslintcache + +# Prettier cache +.prettiercache + +# Vite cache +.vite/ + +# Local development files +.local/ +local/ + +# Documentation build artifacts +docs/build/ +docs/.vitepress/temp/ + +# Editor temporary files +*.sublime-* +*.code-workspace + diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 00000000..c3e1f6f1 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,13 @@ +{ + "semi": false, + "singleQuote": true, + "tabWidth": 2, + "trailingComma": "none", + "printWidth": 100, + "endOfLine": "lf", + "arrowParens": "avoid", + "bracketSpacing": true, + "bracketSameLine": false, + "vueIndentScriptAndStyle": false +} + diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 00000000..8047f813 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,22 @@ +# SeaBlock Documentation Image Licensing + +This project includes images sourced from the SeaBlock Fandom Wiki and Reddit, used in accordance with their respective licenses: + +## SeaBlock Fandom Wiki Images + +All images downloaded from the SeaBlock Fandom Wiki (https://seablock.fandom.com/) are licensed under the Creative Commons Attribution-ShareAlike (CC-BY-SA) license, unless otherwise noted. See: https://www.fandom.com/licensing + +## Reddit Images + +Images and charts sourced from Reddit posts by u/DanielKotes and others are used with attribution to the original authors. Where possible, original links and credits are provided in the documentation. + +## Attribution + +- SeaBlock Fandom Wiki: CC-BY-SA, https://seablock.fandom.com/ +- Reddit: Original authors credited in guide sections + +If you use or redistribute these images, you must comply with the terms of the CC-BY-SA license and provide appropriate attribution. + +--- + +For questions or requests regarding image licensing, please contact the maintainers or refer to the original sources. diff --git a/README.md b/README.md new file mode 100644 index 00000000..3aead384 --- /dev/null +++ b/README.md @@ -0,0 +1,194 @@ +# SeaBlock Wiki + +A comprehensive wiki for the SeaBlock mod for Factorio, built with VitePress and featuring a browser-based WYSIWYG editor. + +## 🚀 Features + +- **True WYSIWYG Editing** - Edit content with our browser-based editor that shows exactly how your changes will appear +- **VitePress Powered** - Modern, fast static site generation with Vue.js +- **GitHub Pages Ready** - Automatic deployment to GitHub Pages +- **Mobile Friendly** - Responsive design that works on all devices +- **Community Driven** - Open source and community-maintained + +## 🏗️ Architecture + +This project uses a dual SSG approach: + +1. **Node.js VitePress** - Generates the static site for GitHub Pages +2. **Browser Bundle** - VitePress compiled to JavaScript for client-side rendering +3. **WYSIWYG Editor** - Browser-based editor with live preview + +### 📚 Documentation + +- **[VitePress Browser Bundle Guide](VITEPRESS_BROWSER_BUNDLE_GUIDE.md)** - Complete guide to the custom VitePress browser bundle solution +- **[Vite Dependencies Guide](VITE_DEPENDENCIES_GUIDE.md)** - Analysis of VitePress browser compatibility challenges + +## 🛠️ Development + +### Prerequisites + +- Node.js 18+ +- npm or yarn + +### Quick Start + +1. **Clone the repository** + + ```bash + git clone https://github.com/modded-factorio/SeaBlock.git + cd SeaBlock-wiki + ``` + +2. **Install dependencies** + + ```bash + npm install + ``` + +3. **Start development** + + ```bash + # Start VitePress development server + npm run dev + + # Or start the WYSIWYG editor + npm run dev:editor + + # Or start both servers + ./dev.sh all + ``` + +### Development Scripts + +- `npm run dev` - Start VitePress development server (port 5173) +- `npm run dev:editor` - Start WYSIWYG editor (port 3000) +- `npm run build` - Build VitePress site for production +- `npm run build:browser` - Build browser bundle for client-side rendering +- `npm run build:editor` - Build WYSIWYG editor for production +- `npm run preview` - Preview production build locally + +### VS Code Devcontainer + +For the best development experience, use the included devcontainer: + +1. Open the project in VS Code +2. Click "Reopen in Container" when prompted +3. The container will automatically set up Node.js, VitePress, and all dependencies + +## 📁 Project Structure + +``` +SeaBlock-wiki/ +├── .devcontainer/ # VS Code devcontainer configuration +├── .github/workflows/ # GitHub Actions for deployment +├── .vitepress/ # VitePress configuration +│ ├── config.js # Main VitePress config +│ └── theme/ # Custom theme files +├── content/ # Markdown content +├── src/ # Source code +│ ├── browser-bundle/ # VitePress browser bundle +│ └── editor/ # WYSIWYG editor +├── assets/ # Static assets +├── package.json # Dependencies and scripts +└── README.md # This file +``` + +## 🎨 WYSIWYG Editor + +The WYSIWYG editor provides a true "What You See Is What You Get" experience: + +- **Split-pane interface** - Markdown source on the left, live preview on the right +- **Real-time rendering** - Uses the actual VitePress renderer +- **Copy to GitHub** - One-click export to GitHub editor +- **Fullscreen preview** - Test navigation and full-page rendering +- **Dark/Light themes** - Choose your preferred theme + +### Using the Editor + +1. Navigate to `/editor/` on your local development server +2. Edit markdown in the left pane +3. See live preview in the right pane +4. Use "Copy to GitHub" to publish your changes + +## 🚀 Deployment + +The site is automatically deployed to GitHub Pages when changes are pushed to the `main` branch. + +### Manual Deployment + +```bash +# Build the site +npm run build + +# The dist/ folder contains the built site +# Deploy dist/ to your hosting provider +``` + +## 🤝 Contributing + +We welcome contributions! Here's how to get started: + +1. **Fork the repository** +2. **Create a feature branch** + ```bash + git checkout -b feature/your-feature-name + ``` +3. **Make your changes** +4. **Test your changes** + ```bash + npm run dev + ``` +5. **Submit a pull request** + +### Content Contributions + +- Use the WYSIWYG editor to create and edit content +- Follow the existing content structure and style +- Test your changes locally before submitting + +### Code Contributions + +- Follow the existing code style +- Add tests for new features +- Update documentation as needed + +## 📚 Content Guidelines + +### Writing Style + +- Use clear, concise language +- Include code examples where helpful +- Add screenshots for complex concepts +- Keep content up-to-date with mod versions + +### Markdown Guidelines + +- Use proper heading hierarchy (H1 → H2 → H3) +- Include front matter for page metadata +- Use code blocks with language specification +- Link to related pages and external resources + +## 🐛 Issues and Support + +- **Bug Reports** - Use GitHub Issues +- **Feature Requests** - Use GitHub Discussions +- **Questions** - Join our Discord server +- **Documentation** - Check the wiki itself + +## 📄 License + +This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. + +## 🙏 Acknowledgments + +- **VitePress Team** - For the amazing static site generator +- **Vue.js Team** - For the reactive framework +- **SeaBlock Community** - For the mod and community support +- **Contributors** - Everyone who helps improve this wiki + +--- + +**Happy building! 🏗️** + +_Built with ❤️ for the SeaBlock community_ + diff --git a/_headers b/_headers new file mode 100644 index 00000000..f9af6a21 --- /dev/null +++ b/_headers @@ -0,0 +1,20 @@ +# GitHub Pages headers configuration +# This file configures HTTP headers for GitHub Pages + +# WASM files - required for Shiki syntax highlighting +/*.wasm + Cross-Origin-Embedder-Policy: require-corp + Cross-Origin-Opener-Policy: same-origin + Cross-Origin-Resource-Policy: cross-origin + +# JavaScript files +/*.js + Cross-Origin-Resource-Policy: cross-origin + +# JSON files (themes) +/*.json + Cross-Origin-Resource-Policy: cross-origin + +# CSS files +/*.css + Cross-Origin-Resource-Policy: cross-origin diff --git a/advanced-markdown-guide.md b/advanced-markdown-guide.md new file mode 100644 index 00000000..2e1fcb74 --- /dev/null +++ b/advanced-markdown-guide.md @@ -0,0 +1,96 @@ +These are examples which can be copied into the editor and visualised in real time + +## 1 Containers +::: tip +Always build extra green circuits early — you’ll need them. +::: + +::: warning +Don’t launch rockets without checking fuel efficiency first. +::: + +::: details Fun Fact +This recipe used to cost 3x more in version 0.2. +::: + +## 2. Code blocks + +```lua +/c game.player.insert{name="iron-plate", count=100} +``` +## 3. Tables + +| Item | Cost | Output | +|-------------|-------|--------| +| Iron Plate | 1 ore | 1 plate| +| Copper Wire | 1 bar | 2 wire | + +## 4. Images +![Logo](seablock-header.jpg) + +
+ Factory layout +
Example starter base layout with smelters and labs
+
+ +## 5. Task Lists (for community TODOs or progression) +- [x] Automate basic circuits +- [ ] Build blue science +- [ ] Launch rocket + +## 6 Frontmatter (metadata and search) + +Must appear exactly as below as the first line of the file (not covered by the editor) +``` +--- +title: Science Pack Guide +description: How to automate red, green, and blue science packs +tags: [science, automation, guide] +--- +``` + +## 7 HTML + +Raw HTML works here eg +WHEEE + +## 8 Embeds +Because of #7 just embed direct from Youtube or other sites + + + +## 8 Markdown functionality +Links +Internal link +[Go to Getting Started](/getting-started/) +External link +[Factorio Wiki](https://wiki.factorio.com/) +> This is a quoted line. + +--- +rule +--- + +## 9 Grids + +
+
+

Source

+ + +# Example +- Step A +- Step B +
+
+

Rendered

+ +
+
+ +## 10 Emojis +Syntax below will be embedded as standard emojis +:tada: diff --git a/basic-markdown-guide.md b/basic-markdown-guide.md new file mode 100644 index 00000000..e7447f69 --- /dev/null +++ b/basic-markdown-guide.md @@ -0,0 +1,165 @@ +# Basic Markdown Guide for VitePress Wikis + +This guide covers the **core Markdown features** that every contributor will use. Keep it simple — you don’t need to know everything to start writing pages. + +--- + +## 1. Headings + +Use `#` for titles and `##` or `###` for sections. + +```md +# Page Title + +## Section Title + +### Subsection Title +``` + +Headings automatically appear in the sidebar outline. + +--- + +## 2. Paragraphs & Line Breaks + +Just write text as you would normally. Leave an empty line between paragraphs. + +```md +This is the first paragraph. + +This is the second paragraph. +``` + +--- + +## 3. Emphasis + +```md +*italic* or _italic_ +**bold** or __bold__ +~~strikethrough~~ +``` + +--- + +## 4. Lists + +### Bulleted list + +```md +- First +- Second + - Nested item +``` + +### Numbered list + +```md +1. Step one +2. Step two +3. Step three +``` + +--- + +## 5. Links + +### Internal link + +```md +[Go to Getting Started](/getting-started/) +``` + +### External link + +```md +[Factorio Wiki](https://wiki.factorio.com/) +``` + +--- + +## 6. Images + +```md +![Alt text](/images/example.png) +``` + +Alt text is important for accessibility. + +--- + +## 7. Blockquotes + +```md +> This is a quoted line. +``` + +> This is a quoted line. + +--- + +## 8. Code + +### Inline code + +```md +Use `iron-plate` as input. +``` + +### Code block + +````md +```lua +/c game.speed = 2 +``` +```` + +--- + +## 9. Tables (simple) + +```md +| Item | Cost | +|------|------| +| Iron | 1 ore | +| Copper | 1 ore | +``` + +| Item | Cost | +| ------ | ----- | +| Iron | 1 ore | +| Copper | 1 ore | + +--- + +## 10. Task Lists + +```md +- [x] Finished task +- [ ] Unfinished task +``` + +- + +--- + +## 11. Horizontal Rule + +```md +--- +``` + +--- + +## 12. Escaping + +If you want to show raw Markdown characters, add a backslash: + +```md +\*This will not be italic.\* +``` + +--- + +👉 With just these basics, you can write almost any wiki page! + diff --git a/dev.sh b/dev.sh new file mode 100755 index 00000000..98c1275f --- /dev/null +++ b/dev.sh @@ -0,0 +1,90 @@ +#!/bin/bash + +# SeaBlock Wiki Development Script +echo "🚀 Starting SeaBlock Wiki development environment..." + +# Check if we're in a devcontainer +if [ -n "$REMOTE_CONTAINERS" ] || [ -n "$CODESPACES" ]; then + echo "📦 Running in devcontainer/codespace" + DEV_MODE="container" +else + echo "💻 Running locally" + DEV_MODE="local" +fi + +# Function to start VitePress dev server +start_vitepress() { + echo "📚 Starting VitePress development server..." + npm run dev +} + +# Function to start WYSIWYG editor +start_editor() { + echo "✏️ Starting WYSIWYG editor..." + npm run dev:editor +} + +# Function to build browser bundle +build_browser() { + echo "🔨 Building browser bundle..." + npm run build:browser +} + +# Function to show help +show_help() { + echo "SeaBlock Wiki Development Script" + echo "" + echo "Usage: ./dev.sh [command]" + echo "" + echo "Commands:" + echo " vitepress Start VitePress development server (default)" + echo " editor Start WYSIWYG editor development server" + echo " build Build browser bundle" + echo " all Start both VitePress and editor servers" + echo " help Show this help message" + echo "" + echo "Examples:" + echo " ./dev.sh # Start VitePress server" + echo " ./dev.sh editor # Start WYSIWYG editor" + echo " ./dev.sh all # Start both servers" +} + +# Main script logic +case "${1:-vitepress}" in + "vitepress") + start_vitepress + ;; + "editor") + start_editor + ;; + "build") + build_browser + ;; + "all") + echo "🔄 Starting both servers..." + echo "VitePress will be available at: http://localhost:5173" + echo "WYSIWYG Editor will be available at: http://localhost:3000" + echo "" + echo "Press Ctrl+C to stop all servers" + + # Start both servers in background + npm run dev & + VITEPRESS_PID=$! + + npm run dev:editor & + EDITOR_PID=$! + + # Wait for both processes + wait $VITEPRESS_PID $EDITOR_PID + ;; + "help"|"-h"|"--help") + show_help + ;; + *) + echo "❌ Unknown command: $1" + echo "" + show_help + exit 1 + ;; +esac + diff --git a/docs/.vitepress/config-data.js b/docs/.vitepress/config-data.js new file mode 100644 index 00000000..a0ed4dd4 --- /dev/null +++ b/docs/.vitepress/config-data.js @@ -0,0 +1,129 @@ +// VitePress configuration data +// This file contains the actual configuration that can be imported by both +// the main config.js and the browser bundle + +export const configData = { + title: 'SeaBlock Wiki', + description: 'The comprehensive guide to SeaBlock mod for Factorio', + + // GitHub Pages configuration + base: '/SeaBlock/', + + // Head configuration + head: [['link', { rel: 'icon', href: 'favicon.ico' }]], + + // Theme configuration + themeConfig: { + logo: '/seablock-header.jpg', + // GitHub repository + repo: 'modded-factorio/seablock', + repoLabel: 'GitHub', + + // Navigation + nav: [ + { text: 'Home', link: '/' }, + { text: 'Getting Started', link: '/getting-started/' }, + { text: 'Guides', link: '/guides/' }, + { text: 'Reference', link: '/reference/' } + ], + + // Sidebar hardcoded here for the editor + sidebar: { + '/getting-started/': [ + { + text: 'Getting Started', + items: [ + { text: 'Introduction', link: '/getting-started/' }, + { text: 'Installation', link: '/getting-started/installation' }, + { text: 'First Steps', link: '/getting-started/first-steps' } + ] + } + ], + '/guides/': [ + { + text: 'Guides', + items: [ + { text: 'Overview', link: '/guides/' }, + { text: 'Early Game', link: '/guides/early-game' }, + { text: 'Mid Game', link: '/guides/mid-game' }, + { text: 'Late Game', link: '/guides/late-game' } + ] + } + ], + '/reference/': [ + { + text: 'Reference', + items: [ + { text: 'Overview', link: '/reference/' }, + { text: 'Recipes', link: '/reference/recipes' }, + { text: 'Technologies', link: '/reference/technologies' }, + { text: 'Items', link: '/reference/items' } + ] + } + ] + }, + + // Social links + socialLinks: [ + { icon: 'github', link: 'https://github.com/modded-factorio/SeaBlock' }, + { icon: 'reddit', link: 'https://www.reddit.com/r/SeaBlock' }, + { icon: 'discord', link: 'https://discord.com/invite/zq63yqp' } + ], + + // Footer + footer: { + message: 'Built with VitePress and ❤️ for the SeaBlock community', + copyright: 'Copyright © 2025 SeaBlock Wiki' + }, + + // Search + search: { + provider: 'local' + }, + + // Edit link + editLink: { + pattern: 'https://github.com/modded-factorio/SeaBlock/new/wiki/?filename=:path', + text: 'Edit this page on GitHub' + }, + + // Last updated + lastUpdated: { + text: 'Last updated', + formatOptions: { + dateStyle: 'short', + timeStyle: 'medium' + } + } + }, + + // Markdown configuration + markdown: { + lineNumbers: true, + theme: { + light: 'github-light', + dark: 'github-dark' + } + }, + + // Build configuration + build: { + outDir: 'dist', + assetsDir: 'assets' + }, + + // Ignore dead links for development + ignoreDeadLinks: true, + + // Development server + server: { + port: 5173, + host: '0.0.0.0' // Required for devcontainer access + }, + + // Preview server + preview: { + port: 4173, + host: '0.0.0.0' // Required for devcontainer access + } +} diff --git a/docs/.vitepress/config.js b/docs/.vitepress/config.js new file mode 100644 index 00000000..3ef702f5 --- /dev/null +++ b/docs/.vitepress/config.js @@ -0,0 +1,198 @@ +import { defineConfig } from 'vitepress' +import { configData } from './config-data.js' +import { readFileSync, readdirSync, statSync } from 'fs' +import { resolve, basename } from 'path' + +// Clone the imported config data to avoid mutations +const modifiedConfigData = { ...configData } +modifiedConfigData.themeConfig = { ...configData.themeConfig } + +// ---------- Helpers ---------- +function safeStat(p) { + try { + return statSync(p) + } catch { + return null + } +} + +function toTitleCase(s) { + return s + .replace(/[-_]+/g, ' ') + .replace(/\s+/g, ' ') + .trim() + .replace(/\b\w/g, c => c.toUpperCase()) +} + +function getMarkdownTitle(absFilePath, fallback) { + try { + const raw = readFileSync(absFilePath, 'utf-8') + + // Try YAML frontmatter `title:` + const fmMatch = raw.match(/^---\s*[\s\S]*?^---/m) + if (fmMatch) { + const titleMatch = + fmMatch[0].match(/^\s*title\s*:\s*(.+)\s*$/im) || + fmMatch[0].match(/^\s*title\s*:\s*["']([^"']+)["']\s*$/im) + if (titleMatch) { + return titleMatch[1].replace(/^["']|["']$/g, '').trim() + } + } + + // Fallback: first H1 + const h1Match = raw.match(/^\s*#\s+(.+?)\s*$/m) + if (h1Match) return h1Match[1].trim() + + // Last resort: filename + return fallback + } catch { + return fallback + } +} + +const docsRoot = resolve(process.cwd(), 'docs') + +/** + * Build sidebar for a given directory. + * Rules: + * - Files: index.md / README.md first, then the rest (alpha). + * - Directories: + * - If the recursive result yields exactly one page item, roll it into a shared "Child Pages" group. + * - Otherwise, keep a normal subgroup with its own title. + * - Each item's text is SSR-derived from the page title. + */ +function buildSidebar(dir, basePath = '') { + const entries = readdirSync(dir, { withFileTypes: true }) + + const files = [] + const dirs = [] + + for (const entry of entries) { + if (entry.isFile() && entry.name.toLowerCase().endsWith('.md')) files.push(entry.name) + else if (entry.isDirectory()) dirs.push(entry.name) + } + + // Sort files with index.md/README.md first, then alpha + const indexNames = new Set(['index.md', 'readme.md']) + const sortedFiles = files.sort((a, b) => { + const ai = indexNames.has(a.toLowerCase()) ? -1 : 0 + const bi = indexNames.has(b.toLowerCase()) ? -1 : 0 + if (ai !== bi) return ai - bi + return a.localeCompare(b, undefined, { numeric: true, sensitivity: 'base' }) + }) + + const sidebar = [] + const rolledUpChildPages = [] + + // Add file pages + for (const file of sortedFiles) { + const relPath = basePath ? `${basePath}/${file}` : file + const link = `/${relPath.replace(/\\/g, '/').replace(/\/+/g, '/')}`.replace(/\.md$/i, '') + const absFile = resolve(dir, file) + const text = getMarkdownTitle(absFile, file.replace(/\.md$/i, '')) + sidebar.push({ text, link }) + } + + // Handle subdirectories + for (const sub of dirs.sort((a, b) => + a.localeCompare(b, undefined, { numeric: true, sensitivity: 'base' }) + )) { + const subDir = resolve(dir, sub) + const subRel = basePath ? `${basePath}/${sub}` : sub + + const children = buildSidebar(subDir, subRel) + + // Determine if this subgroup resolves to a single *page* item (not another group) + const flattenableSingle = + children.length === 1 && + 'link' in children[0] && // single direct page + typeof children[0].link === 'string' + + if (flattenableSingle) { + // Roll into the shared "Child Pages" group + rolledUpChildPages.push(children[0]) + } else if (children.length > 0) { + // Title for the subgroup: prefer the subfolder's index.md title, else folder name + const indexMd = resolve(subDir, 'index.md') + const readmeMd = resolve(subDir, 'README.md') + const titleSource = + (safeStat(indexMd)?.isFile() && indexMd) || + (safeStat(readmeMd)?.isFile() && readmeMd) || + null + const groupTitle = titleSource + ? getMarkdownTitle(titleSource, toTitleCase(sub)) + : toTitleCase(sub) + sidebar.push({ text: groupTitle, items: children }) + } + } + + if (rolledUpChildPages.length) { + // Keep "/" index of current folder first within this group too, if present + const sorted = rolledUpChildPages.sort((a, b) => + a.text.localeCompare(b.text, undefined, { numeric: true, sensitivity: 'base' }) + ) + sidebar.push({ + text: 'Child Pages', + items: sorted + }) + } + + return sidebar +} + +// ---------- Build sidebar based on nav ---------- +const sidebarConfig = {} + +if (modifiedConfigData.themeConfig?.nav) { + modifiedConfigData.themeConfig.nav.forEach(navItem => { + if (navItem?.link) { + const navPath = navItem.link.replace(/^\/+|\/+$/g, '') + const folderPath = resolve(docsRoot, navPath) + if (safeStat(folderPath)?.isDirectory()) { + sidebarConfig[`/${navPath}/`] = buildSidebar(folderPath, navPath) + } + } + }) +} + +modifiedConfigData.themeConfig.sidebar = sidebarConfig + +export default defineConfig({ + ...modifiedConfigData, + transformPageData(pageData) { + try { + const markdownPath = resolve(process.cwd(), 'docs', pageData.relativePath) + const rawMarkdown = readFileSync(markdownPath, 'utf-8') + + // Encode the raw markdown content as base64 + const encoded = Buffer.from(rawMarkdown, 'utf-8').toString('base64') + + // Attach comprehensive markdown data to the pageData for editor consumption + pageData.frontmatter.__encodedMarkdown = encoded + pageData.frontmatter.__markdownLength = rawMarkdown.length + pageData.frontmatter.__markdownHash = Buffer.from(rawMarkdown).toString('base64').slice(0, 16) + + // Add metadata for editor + pageData.frontmatter.__editorData = { + hasContent: rawMarkdown.trim().length > 0, + contentLength: rawMarkdown.length, + hasFrontmatter: rawMarkdown.startsWith('---'), + lastModified: new Date().toISOString(), + pagePath: pageData.relativePath + } + + // Also provide SSR title here as a safety net (VitePress may set `title` later) + if (!pageData.title || typeof pageData.title !== 'string') { + const fallbackFile = resolve(process.cwd(), 'docs', pageData.relativePath) + const fallbackName = basename(fallbackFile).replace(/\.md$/i, '') + pageData.title = getMarkdownTitle(fallbackFile, fallbackName) + } + + console.log(`📝 Injected markdown for ${pageData.relativePath} (${rawMarkdown.length} chars)`) + } catch (error) { + console.log(`⚠️ Could not read markdown file for ${pageData.relativePath}:`, error?.message) + } + + return pageData + } +}) diff --git a/docs/.vitepress/theme/Layout.vue b/docs/.vitepress/theme/Layout.vue new file mode 100644 index 00000000..c1fd0b1d --- /dev/null +++ b/docs/.vitepress/theme/Layout.vue @@ -0,0 +1,130 @@ + + + + + diff --git a/docs/.vitepress/theme/components/EditorWidget.vue b/docs/.vitepress/theme/components/EditorWidget.vue new file mode 100644 index 00000000..7b177be9 --- /dev/null +++ b/docs/.vitepress/theme/components/EditorWidget.vue @@ -0,0 +1,612 @@ + + + + + diff --git a/docs/.vitepress/theme/custom.css b/docs/.vitepress/theme/custom.css new file mode 100644 index 00000000..85073cc8 --- /dev/null +++ b/docs/.vitepress/theme/custom.css @@ -0,0 +1,86 @@ +/* Custom theme styles for SeaBlock Wiki */ + +:root { + /* SeaBlock brand colors */ + --vp-c-brand-1: #00d4aa; + --vp-c-brand-2: #00b894; + --vp-c-brand-3: #00a085; + + /* Custom accent colors */ + --vp-c-accent-1: #fdcb6e; + --vp-c-accent-2: #e17055; + --vp-c-accent-3: #6c5ce7; +} + +/* Dark mode brand colors */ +.dark { + --vp-c-brand-1: #00d4aa; + --vp-c-brand-2: #00b894; + --vp-c-brand-3: #00a085; +} + +/* Custom component styles */ +.vp-doc h1 { + background: linear-gradient(135deg, var(--vp-c-brand-1), var(--vp-c-accent-1)); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +/* WYSIWYG Editor Integration */ +.wysiwyg-editor { + border: 2px solid var(--vp-c-brand-1); + border-radius: 8px; + overflow: hidden; +} + +.wysiwyg-editor .editor-pane { + border-right: 1px solid var(--vp-c-border); +} + +.wysiwyg-editor .preview-pane { + background: var(--vp-c-bg); +} + +/* Recipe cards */ +.recipe-card { + border: 1px solid var(--vp-c-border); + border-radius: 8px; + padding: 1rem; + margin: 1rem 0; + background: var(--vp-c-bg-soft); +} + +.recipe-card h3 { + color: var(--vp-c-brand-1); + margin-top: 0; +} + +/* Technology tree styling */ +.tech-tree { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 1rem; + margin: 2rem 0; +} + +.tech-node { + border: 2px solid var(--vp-c-border); + border-radius: 8px; + padding: 1rem; + text-align: center; + transition: all 0.2s ease; +} + +.tech-node:hover { + border-color: var(--vp-c-brand-1); + transform: translateY(-2px); +} + +/* Responsive design */ +@media (max-width: 768px) { + .tech-tree { + grid-template-columns: 1fr; + } +} + diff --git a/docs/.vitepress/theme/editor-styles.css b/docs/.vitepress/theme/editor-styles.css new file mode 100644 index 00000000..3348f519 --- /dev/null +++ b/docs/.vitepress/theme/editor-styles.css @@ -0,0 +1,276 @@ +/* VitePress Browser Renderer Styles for Editor Preview */ + +/* Ensure proper styling for preview content */ +.preview-content .vp-doc { + font-family: + -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Fira Sans', + 'Droid Sans', 'Helvetica Neue', sans-serif; + line-height: 1.6; + color: #2c3e50; +} + +.preview-content .vp-doc h1, +.preview-content .vp-doc h2, +.preview-content .vp-doc h3, +.preview-content .vp-doc h4, +.preview-content .vp-doc h5, +.preview-content .vp-doc h6 { + margin-top: 2rem; + margin-bottom: 1rem; + font-weight: 600; + line-height: 1.25; + color: #2c3e50; +} + +.preview-content .vp-doc h1 { + font-size: 2.25rem; + border-bottom: 1px solid #e2e8f0; + padding-bottom: 0.5rem; +} + +.preview-content .vp-doc h2 { + font-size: 1.875rem; + border-bottom: 1px solid #e2e8f0; + padding-bottom: 0.5rem; +} + +.preview-content .vp-doc h3 { + font-size: 1.5rem; +} + +.preview-content .vp-doc p { + margin-bottom: 1rem; + color: #2c3e50; +} + +.preview-content .vp-doc code { + background-color: #f1f5f9; + padding: 0.125rem 0.25rem; + border-radius: 0.25rem; + font-family: 'Fira Code', 'Monaco', 'Consolas', 'Ubuntu Mono', monospace; + font-size: 0.875rem; + color: #2c3e50; +} + +.preview-content .vp-doc pre { + background-color: #f8fafc; + border: 1px solid #e2e8f0; + border-radius: 0.5rem; + padding: 1rem; + overflow-x: auto; + margin: 1rem 0; +} + +.preview-content .vp-doc pre code { + background: none; + padding: 0; + border-radius: 0; + color: #2c3e50; +} + +.preview-content .vp-doc blockquote { + border-left: 4px solid #3b82f6; + padding-left: 1rem; + margin: 1rem 0; + color: #64748b; +} + +.preview-content .vp-doc ul, +.preview-content .vp-doc ol { + margin: 1rem 0; + padding-left: 2rem; +} + +.preview-content .vp-doc li { + margin: 0.25rem 0; + color: #2c3e50; +} + +.preview-content .vp-doc table { + border-collapse: collapse; + width: 100%; + margin: 1rem 0; +} + +.preview-content .vp-doc th, +.preview-content .vp-doc td { + border: 1px solid #e2e8f0; + padding: 0.5rem; + text-align: left; + color: #2c3e50; +} + +.preview-content .vp-doc th { + background-color: #f8fafc; + font-weight: 600; +} + +.preview-content .vp-doc a { + color: #3b82f6; + text-decoration: none; +} + +.preview-content .vp-doc a:hover { + text-decoration: underline; +} + +.preview-content .vp-doc img { + max-width: 100%; + height: auto; + border-radius: 0.5rem; + margin: 1rem 0; +} + +/* VitePress custom containers */ +.preview-content .custom-block { + margin: 1rem 0; + padding: 1rem; + border-radius: 0.5rem; + border-left: 4px solid; +} + +.preview-content .custom-block.tip { + background-color: #f0f9ff; + border-left-color: #0ea5e9; + color: #0c4a6e; +} + +.preview-content .custom-block.warning { + background-color: #fffbeb; + border-left-color: #f59e0b; + color: #92400e; +} + +.preview-content .custom-block.danger { + background-color: #fef2f2; + border-left-color: #ef4444; + color: #991b1b; +} + +.preview-content .custom-block.details { + background-color: #f8fafc; + border-left-color: #64748b; + color: #334155; +} + +.preview-content .custom-block-title { + font-weight: 600; + margin-bottom: 0.5rem; + text-transform: capitalize; +} + +.preview-content .custom-block-content { + margin: 0; +} + +/* Line numbers */ +.preview-content .line-numbers { + display: inline-block; + margin-right: 1rem; + color: #6b7280; + font-size: 0.875rem; +} + +.preview-content .line-number { + display: block; + text-align: right; + padding-right: 0.5rem; +} + +/* Shiki syntax highlighting base styles */ +.preview-content .shiki { + background: #f8fafc !important; + border: 1px solid #e2e8f0; + border-radius: 0.5rem; + padding: 1rem; + overflow-x: auto; + margin: 1rem 0; + font-family: 'Fira Code', 'Monaco', 'Consolas', 'Ubuntu Mono', monospace; + font-size: 0.875rem; + line-height: 1.6; +} + +.preview-content .shiki code { + background: none !important; + padding: 0 !important; + border-radius: 0 !important; + font-size: inherit !important; +} + +/* Shiki line numbers */ +.preview-content .shiki .line-numbers { + display: inline-block; + margin-right: 1rem; + color: #6b7280; + font-size: 0.875rem; + user-select: none; +} + +.preview-content .shiki .line-number { + display: block; + text-align: right; + padding-right: 0.5rem; + min-width: 2rem; +} + +/* Dark theme support */ +:global(.dark) .preview-content .vp-doc { + color: #f9fafb; +} + +:global(.dark) .preview-content .vp-doc h1, +:global(.dark) .preview-content .vp-doc h2, +:global(.dark) .preview-content .vp-doc h3, +:global(.dark) .preview-content .vp-doc h4, +:global(.dark) .preview-content .vp-doc h5, +:global(.dark) .preview-content .vp-doc h6 { + color: #f9fafb; + border-bottom-color: #4a5568; +} + +:global(.dark) .preview-content .vp-doc p { + color: #f9fafb; +} + +:global(.dark) .preview-content .vp-doc li { + color: #f9fafb; +} + +:global(.dark) .preview-content .vp-doc code { + background-color: #2d3748; + color: #e2e8f0; +} + +:global(.dark) .preview-content .vp-doc pre { + background-color: #2d3748; + border-color: #4a5568; +} + +:global(.dark) .preview-content .vp-doc pre code { + color: #e2e8f0; +} + +:global(.dark) .preview-content .vp-doc blockquote { + border-left-color: #63b3ed; + color: #a0aec0; +} + +:global(.dark) .preview-content .vp-doc a { + color: #63b3ed; +} + +:global(.dark) .preview-content .vp-doc th, +:global(.dark) .preview-content .vp-doc td { + border-color: #4a5568; + color: #f9fafb; +} + +:global(.dark) .preview-content .vp-doc th { + background-color: #2d3748; +} + +/* Shiki dark theme support */ +:global(.dark) .preview-content .shiki { + background: #2d3748 !important; + border-color: #4a5568; +} diff --git a/docs/.vitepress/theme/index.js b/docs/.vitepress/theme/index.js new file mode 100644 index 00000000..6f69b56c --- /dev/null +++ b/docs/.vitepress/theme/index.js @@ -0,0 +1,13 @@ +import DefaultTheme from 'vitepress/theme' +import Layout from './Layout.vue' +import './custom.css' +import './editor-styles.css' + +export default { + extends: DefaultTheme, + Layout, + enhanceApp({ app }) { + // Register global components or plugins here + } +} + diff --git a/docs/getting-started/first-steps.md b/docs/getting-started/first-steps.md new file mode 100644 index 00000000..d5c7a437 --- /dev/null +++ b/docs/getting-started/first-steps.md @@ -0,0 +1,19 @@ +# First Steps + +After installing SeaBlock, here are your first actions: + +1. **Check the Rock** + - Your starting island has a suspicious rock. Mine it to reveal essential supplies. +2. **Expand with Landfill** + - Use the landfill you find to create more space. Land is precious. +3. **Power Up** + - Place your starting wind turbines for free energy. +4. **Begin Resource Generation** + - Use electrolyzers to turn water into slag, and crystallizers to turn slag into ores. +5. **Farm Algae** + - Algae farms provide fiber, fuel, and the foundation for early circuits. + +## Next Steps +- Build your first **Lab** and start researching Automation Science. +- Scale up algae farms for consistent fuel. +- Automate slag and ore processing. diff --git a/docs/getting-started/index.md b/docs/getting-started/index.md new file mode 100644 index 00000000..569bffd2 --- /dev/null +++ b/docs/getting-started/index.md @@ -0,0 +1,19 @@ + +# Getting Started with SeaBlock + +Welcome to SeaBlock! This page introduces the modpack and its unique gameplay. + +## What is SeaBlock? + +SeaBlock is a **total conversion modpack** for Factorio. You begin on a tiny patch of land in the middle of an endless ocean. There are no ore patches to mine—every resource must be engineered from water, algae, and chemistry. + +The journey is long and complex, but incredibly rewarding. + +## How to Begin + +Ready to play? Start with these guides: + +- [Installation](./installation.md): How to install SeaBlock and required mods. +- [First Steps](./first-steps.md): Your first actions after starting a new game. + +Once you’re set up, explore the [Guides](/guides/) for strategies on progressing through each stage of the game. \ No newline at end of file diff --git a/docs/getting-started/installation.md b/docs/getting-started/installation.md new file mode 100644 index 00000000..56a126c5 --- /dev/null +++ b/docs/getting-started/installation.md @@ -0,0 +1,12 @@ +# Installation + +Follow these steps to install SeaBlock and get started: + +1. **Install Factorio** + - Download and install the latest stable version of Factorio from [factorio.com](https://factorio.com/). +2. **Download SeaBlock Pack** + - Download the **Sea Block Pack - Official** mod from the [Factorio Mod Portal](https://mods.factorio.com/mod/SeaBlockMetaPack) or from the in game mods menu. +3. **Enable Mods** + - The SeaBlock Pack will automatically install all required dependencies (Bob's, Angel's, and support mods). +4. **Start a New Game** + - Select the _SeaBlock_ scenario to begin your adventure. diff --git a/docs/guides/DanielKotes/images/advanced_ore_generation.png b/docs/guides/DanielKotes/images/advanced_ore_generation.png new file mode 100644 index 00000000..7d4cc327 Binary files /dev/null and b/docs/guides/DanielKotes/images/advanced_ore_generation.png differ diff --git a/docs/guides/DanielKotes/images/circuits_chart.png b/docs/guides/DanielKotes/images/circuits_chart.png new file mode 100644 index 00000000..4ff6d363 Binary files /dev/null and b/docs/guides/DanielKotes/images/circuits_chart.png differ diff --git a/docs/guides/DanielKotes/images/landfill_geodes.png b/docs/guides/DanielKotes/images/landfill_geodes.png new file mode 100644 index 00000000..c6d12ad4 Binary files /dev/null and b/docs/guides/DanielKotes/images/landfill_geodes.png differ diff --git a/docs/guides/DanielKotes/images/metallurgy_green_science.png b/docs/guides/DanielKotes/images/metallurgy_green_science.png new file mode 100644 index 00000000..5f28f0f3 Binary files /dev/null and b/docs/guides/DanielKotes/images/metallurgy_green_science.png differ diff --git a/docs/guides/DanielKotes/images/metallurgy_red_science.png b/docs/guides/DanielKotes/images/metallurgy_red_science.png new file mode 100644 index 00000000..cddb0e3b Binary files /dev/null and b/docs/guides/DanielKotes/images/metallurgy_red_science.png differ diff --git a/docs/guides/DanielKotes/images/metallurgy_steel.png b/docs/guides/DanielKotes/images/metallurgy_steel.png new file mode 100644 index 00000000..808ab916 Binary files /dev/null and b/docs/guides/DanielKotes/images/metallurgy_steel.png differ diff --git a/docs/guides/DanielKotes/images/power_charcoal_processing.png b/docs/guides/DanielKotes/images/power_charcoal_processing.png new file mode 100644 index 00000000..576b2eb2 Binary files /dev/null and b/docs/guides/DanielKotes/images/power_charcoal_processing.png differ diff --git a/docs/guides/DanielKotes/images/science_chart.png b/docs/guides/DanielKotes/images/science_chart.png new file mode 100644 index 00000000..d6a2f760 Binary files /dev/null and b/docs/guides/DanielKotes/images/science_chart.png differ diff --git a/docs/guides/DanielKotes/images/seablock_first_ores.png b/docs/guides/DanielKotes/images/seablock_first_ores.png new file mode 100644 index 00000000..62bb41b6 Binary files /dev/null and b/docs/guides/DanielKotes/images/seablock_first_ores.png differ diff --git a/docs/guides/DanielKotes/images/seablock_initial_coal.png b/docs/guides/DanielKotes/images/seablock_initial_coal.png new file mode 100644 index 00000000..c079cf04 Binary files /dev/null and b/docs/guides/DanielKotes/images/seablock_initial_coal.png differ diff --git a/docs/guides/DanielKotes/images/seablock_landfill_options_for_red_science.png b/docs/guides/DanielKotes/images/seablock_landfill_options_for_red_science.png new file mode 100644 index 00000000..70a5c12e Binary files /dev/null and b/docs/guides/DanielKotes/images/seablock_landfill_options_for_red_science.png differ diff --git a/docs/guides/DanielKotes/images/seablock_t1_science.png b/docs/guides/DanielKotes/images/seablock_t1_science.png new file mode 100644 index 00000000..a418d993 Binary files /dev/null and b/docs/guides/DanielKotes/images/seablock_t1_science.png differ diff --git a/docs/guides/DanielKotes/images/starter_guide.png b/docs/guides/DanielKotes/images/starter_guide.png new file mode 100644 index 00000000..d07f4d0b Binary files /dev/null and b/docs/guides/DanielKotes/images/starter_guide.png differ diff --git a/docs/guides/DanielKotes/index.md b/docs/guides/DanielKotes/index.md new file mode 100644 index 00000000..860903f5 --- /dev/null +++ b/docs/guides/DanielKotes/index.md @@ -0,0 +1,390 @@ +--- +title: Seablock Starter Guide (/u/DanielKotes) +--- + +# Seablock Starter Guide + +> This guide is adapted from u/DanielKotes' original Reddit post, reorganized by science stage for clarity. For the original, see [Reddit](https://www.reddit.com/r/Seablock/comments/qkxcs3/seablock_starterguide/?utm_source=share&utm_medium=web2x&context=3). + +## Introduction + +Welcome to Seablock! This modpack transforms Factorio into a unique challenge: you start on a single block of land, with no ore patches and limited space. Nearly everything comes from water, including ores. Expect 10x the items, recipes, and buildings compared to vanilla Factorio. Biters are rare—only worms appear, making the game more peaceful and focused on factory expansion. + +This guide is based on u/DanielKotes' work, sorted by science stages instead of production category. Some content is directly referenced from the original guide and Foreman charts. For installation help, see [Guides:Installation](/getting-started/installation.md). + +> **Tip:** Play the vanilla tutorial before starting Seablock. + +### Terminology + +- **Building Tier:** T0 is burner tier; T1/T2/etc. match the building's name (e.g., burner ore crusher is T0, ore crusher 1 is T1). +- **Circuits & Science:** Circuits are referred to by color (e.g., brown circuit for basic circuit). Science packs are also color-coded, with some special types (e.g., plant science, weapon science). +- **Recipe Tier:** Uses Roman numerals as shown in recipe icons (e.g., dirt water electrolysis I is TI, fast water electrolysis II is TII). +- **Belts & Inserters:** Referred to by color, from lowest to highest: white → yellow → red → blue → purple → green. + +--- + +## First Step (Pre Red-Science) + +You begin on a small island, with your ship transformed into a resource-rich rock to kickstart your factory. Progress is challenging, but possible. The factory won't build itself unless you add extra mods for automation. + +![Ideal starter ore sorting factory](./images/starter_guide.png) +_Ideal starter ore sorting factory, spaced for future inserters and belts._ + +### Pre-Red Science Goals + +1. Crushed stiratite +2. Farm brown algae +3. Craft brown circuit +4. Craft 1 lab + +#### Step-by-Step + +- **Step 0:** If you are not at green science and aren't hand-crafting something important (such as buildings), queue up a few hundred cellulose fiber forage crafts. These are your fuel, and until you get stable power generation, you are the fuel provider for your factory. AFK crafting 1k is optional. +- **Step 1:** Turn on alt mode (press alt) for visibility. Grab resources from the rock, expand the island with landfill (horizontal recommended), place all windmills, and forage cellulose fiber for fuel and crafting. Windmills provide free power—don't remove them. +- **Step 2:** Build and set up: T1 crystallizer, 2 flare stacks, 4 T1 electrolysers, 3 T0 ore crushers, offshore pump, T1 liquefier, 2 filtering furnaces. Use TI water electrolysis, connect hydrogen and oxygen outputs to flare stacks, process slags to crushed stone, then to mineralized water, then crystallizer for pre-ores. Smelt stiratite and saphirite for copper and iron plates. Collect slags, crush to stone, liquefy to mineralized water, crystallize to pre-ores, crush and smelt for plates. Don't forget to clear byproducts from crushers. +- **Step 3:** Unlock and build an algae farm for green algae. Pipe water to the farm, set Green algae I, and complete step 2 of the tutorial tree. +- **Step 4:** Use brown algae, copper plates, and cellulose fiber to craft basic circuits. Stone pipes are recommended early unless you have excess copper. +- **Step 5:** Craft a lab to begin red science. All materials are available from the starting rock. + +> **Note:** Use stone pipes during early phases unless you have excess copper. Copper pipes are unlocked after step 3. + +--- + +## Start of Automation (Red Science Stage) + +When you finish step 3, you unlock logistics: yellow inserters, belts, iron/copper pipes. Burner inserters are also unlocked, but are rarely used. Challenge yourself by using only burner inserters for a rocket launch if you want. Unlock boiler and steam engine for power. + +![Basic red science](./images/seablock_t1_science.png) +_Basic red science setup._ + +### Red Science Production, Basics, Research, and Goals + +Red science is simple: three assembling machines (or 1 player), some iron and copper plates, and you're done. Your goal is to get proper power, upgrade ore production, and reach green science. You can ignore belts for now; early hours involve a lot of hand-feeding (optional: get even distribution mod). + +Main technology tree order: + +1. Automation (electrical ore crushers, assembling machines) +2. Wood processing 2 (fuel bonuses) +3. Green algae processing (**Milestone!**) +4. Washing, basic chemistry, sulfur processing (first sulfur) +5. Fluid control, water treatment, slag processing (**Milestone!**) +6. Steel, mechanical refining, coal processing, solder casting, electronics, logistics, inserter upgrades, green science (**Milestone!**) + +> **HINT:** Once you have warehouses or silos researched, you can set up compact direct-insertion chains. Drop base metals into the silo, assemblers around it pick what they need, craft intermediates, and pass them on, with the final product dropped back in the silo. This leads to a compact, beltless design for the first few hours. + +![TI green algae to charcoal (left), TII green algae to charcoal (right)](./images/seablock_initial_coal.png) + +--- + +### Power Generation for Red + +In the beginning, your only power options are windmills and foraging for cellulose fiber. Place all windmills and always forage cellulose fiber. Your first assembler machines can refine fiber into wood pellets, which can be burned to charcoal as soon as you research wood processing 2. Only burn cellulose in buildings at the start, before you have crafting machines for pellets. + +Green algae is your first automated fuel source. You have two options: + +1. Tier 1 green algae (with brown algae byproducts) +2. Tier 2 green algae (without brown algae byproducts, but with mineralized water requirement) + +Both require similar power, but T2 needs more electrolysers for crushed stone. Once you reach green science and basic chemistry 2, T2 becomes the winner. T2 green algae requires ~3x fewer algae plants, saving landfill and time. Aim for 4-6 T2 algae plants for power generation (requires 4-6 boilers & 8-12 steam engines, enough for 12-16 electrolysers). + +> **NOTE:** Store and transport fuel in wooden blocks, burning them to charcoal on site. 1 wooden brick makes 5 charcoal, so you need 5x less space and belt speed for the same fuel power. + +--- + +### Ore Generation for Red + +![Direct smelting, sorting, stiratite-only sorting](./images/seablock_first_ores.png) + +Your first ore generation methods are inefficient; upgrade as soon as possible. Don't build a large facility until green science. Don't go mega-scale until late-game unless you know what you're doing. + +First ore generation is through mineralized water. Most metal production should go toward research. Direct smelting of stiratite and saphirite is best; sorting produces fewer plates. Only sort stiratite for a bit more iron if needed. Upgrade to electrical crushers quickly. + +> **NOTE:** 30% of early hand-crafting time is spent making cellulose fiber for fuel. Switch to electrical crushers as soon as possible. + +--- + +### Landfill Options for Red + +![Landfill options for red science](./images/seablock_landfill_options_for_red_science.png) + +To expand your island, divert some slag from ores to landfill production. 0.2 landfill/sec from 4 electrolysers is enough for 0.12 metal plates (mineralized water) or 0.24 plates (slag slurry). 1k landfill = 270-530 red science packs worth of research. Expand only after stabilizing your base and unlocking alternate landfill options (green science). + +Washing is available early and is more energy-efficient (1/3 power of electrolyser). Set up lines of 5 plants with a clarifier every 2 lines and a dedicated landfill assembler per line. Get at least 4 lines running and leave them on. Landfill is needed for a long time. Geodes and other options are covered in green science. + +--- + +## Original Guide (Reddit Version) + +> The following is a paraphrased version of the original guide, reorganized for clarity. + +### Preface + +- Seablock is a Bob & Angel modpack with no ore patches and limited land. +- Tiers refer to recipe tiers, not building tiers. +- No blueprints/screenshots—focus on tech tree flow and recipe charts. +- Images are downscaled for readability; original graphs available on [Foreman 2.0](https://github.com/DanielKote/Foreman2). + +--- + +### First Steps + +Managing to crash-land on a single block of land takes skill. Dive for wreckage, recover materials, and deposit them on a rock. Place land, attach windmills, and ask yourself: what now? + +**Step 0:** If not at green science and not hand-crafting something important, queue up hundreds of cellulose fiber forage crafts. These are your fuel until you automate power. AFK crafting 1k is optional. + +Place all windmills for free power. Don't remove them until you have automated charcoal power. + +**Follow the science tutorial:** + +1. Build 1 electrolyser, 2 flare stacks, 1 water pump, 1 ore crusher, 1 liquefier, 1 crystallizer. Set electrolyser to dirty water electrolysis, connect flare stacks, pump water, and get power. Watch your first slag be produced. +2. You have enough materials for 4 electrolysers; add 3 more for speed. Connect outputs for shared flare stacks. +3. Slag → crushed stone → mineralized water → pre-ores → smelt for plates. +4. Build an algae farm, connect water, set T1 green algae, and complete research. +5. Craft T1 (brown) circuits: iron and copper from crushed saphirite and stiratite, copper coils, wooden boards from brown algae → alginic acid → cellulose pulp (+cellulose fiber) → paper → boards. +6. Build your first lab (iron + copper + T1 circuits). + +**Red science goals:** + +1. Get some ores. +2. Get some science. +3. Make a rocket (focus on first two for now). + +--- + +### Ore Generation + +Direct smelting is best early; avoid sorting unless needed for iron. Upgrade to electrical crushers ASAP. Stone pipes are more efficient than copper pipes (5x cheaper based on slag used). + +--- + +### Advanced Ore Generation + +![Advanced ore generation chart](./images/advanced_ore_generation.png) + +Start by getting sulfur via washing. Switch from mineralized water to mineral sludge for double ore output. T2 mineral sludge doubles output again. Geodes become available in green science and are preferred for mineral sludge. Direct ore sorting is optimal for base metals; catalysts needed for advanced sorting. Chunks and flotation cells are required for higher-tier metals. + +> **Key note:** Initial power depends on mineralized water, which is a bottleneck in red science. Green science unlocks excess mineralized sludge and easier power. + +**Geodes:** Once in green science, geodes are preferred for mineral sludge. Set up crystal sludge for later ore production. Use long inserters and warehouses for efficient geode processing. + +**Direct ore sorting:** Best option for metallic ore production after early game. Minor waste for catalysts is negligible. Mineral catalysts for base metals; crystal catalysts for aluminum and higher. Purified water needed for crystal slurry. + +**Chunks (washing):** Higher-tier metals require flotation cells, producing geodes and waste water. Filter waste water and recycle geodes. + +--- + +### Science Progression + +![Science chart](./images/science_chart.png) + +Red science: simple setup, focus on power and ore upgrades. Green science: requires all 4 base metals and T1 circuits. Mechanical refining unlocks metal plates. Warehouses/silos enable compact production chains. + +Technology order: + +1. Automation +2. Wood processing 2 +3. Green algae processing (**Milestone!**) +4. Washing, basic chemistry, sulfur processing +5. Fluid control, water treatment, slag processing (**Milestone!**) +6. Steel, mechanical refining, coal processing, solder casting, electronics, logistics, inserter upgrades, green science (**Milestone!**) +7. Basic chemistry 2 (fast dirty water electrolysis = 2x slag, enough mineralized water for T2 green algae) +8. After this: aim for geodes, metallurgy, or expand to 20 electrolysers. + +> **HINT:** Warehouses/silos allow compact direct-insertion chains for early production. + +--- + +### Power Generation (Charcoal Processing) + +![Charcoal processing chart](./images/power_charcoal_processing.png) + +Cellulose fiber → wood pellets → charcoal → charcoal pellets → solid fuel. Higher-tier boilers/engines reduce footprint but not fuel consumption. + +**Power from 1 T2 green algae farm:** + +1. Cellulose fiber: 1.26MW +2. Wooden pellets: 1.71MW +3. Charcoal: 2.07MW +4. Charcoal pellets: 2.43MW +5. Solid fuel with hydrogen: 6.12MW (requires 4.5 electrolysis T2 per algae farm) + +> **NOTE:** Higher-tier boilers/engines use less space, but same fuel. + +--- + +### Landfill Options + +![Landfill options: geodes](./images/landfill_geodes.png) + +Early landfill from slag; washing is more efficient. Geodes allow mass landfill production later. Set up lines of washing plants and landfill assemblers. Stockpile crystal dust from geodes and landfill all crushed stone. + +--- + +### Circuits + +![Circuits chart](./images/circuits_chart.png) + +T1 circuits: simple, required before red science. T2 circuits: require all base metals and T1 circuits; build temporary factories until metallurgy is unlocked. Once you can grow wood, switch from algae/paper to wood boards. T2 circuits need all base metals and T1 circuits; main sink is new buildings. + +> **NOTE:** Build temporary T1/T2 circuit factories, then replace with long-term options after metallurgy. + +--- + +### Metallurgy + +![Metallurgy (Red science)](./images/metallurgy_red_science.png) +![Metallurgy (Steel)](./images/metallurgy_steel.png) +![Metallurgy (Green science)](./images/metallurgy_green_science.png) + +T1/T2 metallurgy boosts plate output and efficiency. Iron, copper, tin, lead, tinned wire, solder, aluminum, silicon, silver—all have unique metallurgy chains. Use coils and productivity modules for further efficiency. Manage coal/carbon for blast furnaces; avoid mixing fuel types. + +**Red science metallurgy:** + +1. Continue direct smelting (loses efficiency over time). +2. Begin sorting (single sorter for low throughput). +3. Research metallurgy T1 and start molten path (40% more plates, compact setup). +4. Use ferrous mixing for full iron output (manual balancing early on). + +**Steel:** Avoid making steel during red science; it's very inefficient. Green science unlocks better options. + +**Green science metallurgy:** T2 for base metals is simple and efficient. T1 = 33% boost, T2 = 50% boost, T3 = another 50%. Coils add extra boost with coolant and modules. Each metallurgy group (iron, copper, tin, lead, tinned wire, solder, aluminum, silicon, silver) has its own chain and tips. + +> **NOTE:** Coal/carbon can be delivered as wooden bricks, burned to coal, or crafted near furnaces. Charcoal is preferred fuel. Avoid mixing fuel types; prime furnaces with desired fuel. + +--- + +### Bio-Science and Bio-Fuel + +See [Bio Guide](https://www.reddit.com/r/Seablock/comments/qmxsay/seablock_bioguide/) for details. + +### Liquids & Gasses + +Covers oxygen, nitrogen, hydrogen, chlorine, acids, and more—details in future guide sections. Focuses on base liquids/gasses and their production methods. + +## Start of Automation (Red Science Stage) + +Unlock logistics: yellow inserters, belts, iron/copper pipes. Burner inserters are available but rarely used. Unlock boiler and steam engine for power. + +![Basic red science](./images/seablock_t1_science.png) +_Basic red science setup._ + +### Red Science Production & Goals + +- Automation (electrical ore crushers, assembling machines) +- Wood processing 2 +- Green algae processing (**Milestone!**) +- Washing, basic chemistry, sulfur processing +- Fluid control, water treatment, slag processing (**Milestone!**) +- Steel, mechanical refining, coal processing, solder casting, electronics, logistics, inserter upgrades, green science (**Milestone!**) + +> **Hint:** Warehouses/silos allow compact direct-insertion chains for early production. + +![TI green algae to charcoal (left), TII green algae to charcoal (right)](./images/seablock_initial_coal.png) + +### Power Generation for Red + +- Windmills and foraged cellulose fiber are your first power sources. +- Refine cellulose fiber into wood pellets, then charcoal as soon as possible. +- Green algae is the first automated fuel source. T2 green algae is more efficient and space-saving. +- Store fuel as wooden blocks for efficient transport and burning. + +### Ore Generation for Red + +![Direct smelting, sorting, stiratite-only sorting](./images/seablock_first_ores.png) + +- Early ore generation is inefficient; upgrade as soon as possible. +- Use mineralized water for initial metal production, prioritize research. +- Direct smelting of stiratite and saphirite is best; sorting reduces plate output. +- Upgrade to electrical crushers quickly. + +### Landfill Options for Red + +![Landfill options for red science](./images/seablock_landfill_options_for_red_science.png) + +- Divert slag to landfill production to expand your island. +- Washing plants are more energy-efficient than electrolysers for landfill. +- Expand only after stabilizing your base and unlocking alternate landfill options. + +## Original Guide (Reddit Version) + +> The following is a paraphrased version of the original guide, reorganized for clarity. + +### Preface + +- Seablock is a Bob & Angel modpack with no ore patches and limited land. +- Tiers refer to recipe tiers, not building tiers. +- No blueprints/screenshots—focus on tech tree flow and recipe charts. +- Images are downscaled for readability; original graphs available on [Foreman 2.0](https://github.com/DanielKote/Foreman2). + +### First Steps + +- Crash-land, gather resources, expand land, place windmills. +- Forage cellulose fiber for fuel until power is automated. +- Follow the science tutorial: crushed stiratite, brown algae, basic circuits, lab. +- Use 4 electrolysers for faster ore production. +- Slag → crushed stone → mineralized water → pre-ores → smelt for plates. + +### Ore Generation + +- Direct smelting is best early on; avoid sorting unless needed for iron. +- Upgrade to electrical crushers ASAP. +- Stone pipes are more efficient than copper pipes. + +### Advanced Ore Generation + +![Advanced ore generation chart](./images/advanced_ore_generation.png) + +- Progress to sulfur via washing, then switch to mineral sludge for double ore output. +- T2 mineral sludge production doubles output again. +- Geodes become available in green science and are preferred for mineral sludge. +- Direct ore sorting is optimal for base metals; catalysts needed for advanced sorting. +- Chunks and flotation cells are required for higher-tier metals. + +### Science Progression + +![Science chart](./images/science_chart.png) + +- Red science: simple setup, focus on power and ore upgrades. +- Green science: requires all 4 base metals and T1 circuits. +- Technology order: automation, wood processing, algae, chemistry, fluid control, metallurgy, logistics, green science. +- Warehouses/silos enable compact production chains. + +### Power Generation (Charcoal Processing) + +![Charcoal processing chart](./images/power_charcoal_processing.png) + +- Cellulose fiber → wood pellets → charcoal → charcoal pellets → solid fuel. +- Higher-tier boilers/engines reduce footprint but not fuel consumption. + +### Landfill Options + +![Landfill options: geodes](./images/landfill_geodes.png) + +- Early landfill from slag; washing is more efficient. +- Geodes allow mass landfill production later. + +### Circuits + +![Circuits chart](./images/circuits_chart.png) + +- T1 circuits: simple, required before red science. +- T2 circuits: require all base metals and T1 circuits; build temporary factories until metallurgy is unlocked. + +### Metallurgy + +![Metallurgy (Red science)](./images/metallurgy_red_science.png) +![Metallurgy (Steel)](./images/metallurgy_steel.png) +![Metallurgy (Green science)](./images/metallurgy_green_science.png) + +- T1/T2 metallurgy boosts plate output and efficiency. +- Iron, copper, tin, lead, tinned wire, solder, aluminum, silicon, silver—all have unique metallurgy chains. +- Use coils and productivity modules for further efficiency. +- Manage coal/carbon for blast furnaces; avoid mixing fuel types. + +### Bio-Science and Bio-Fuel + +- See [Bio Guide](https://www.reddit.com/r/Seablock/comments/qmxsay/seablock_bioguide/) for details. + +### Liquids & Gasses + +- Covers oxygen, nitrogen, hydrogen, chlorine, acids, and more—details in future guide sections. diff --git a/docs/guides/calculators/helmod.md b/docs/guides/calculators/helmod.md new file mode 100644 index 00000000..8b00c065 --- /dev/null +++ b/docs/guides/calculators/helmod.md @@ -0,0 +1,53 @@ +# Helmod Calculator + +Helmod is a reliable calculator included in the Sea Block Pack, and Kiwi is working to make it even easier to use. While Helmod offers some in-game help, more documentation and updates are planned for the wiki. For step-by-step instructions, check out the video tutorials below: + +## Video Tutorials + +### Beginner + + + +### Intermediate + + + +## Circular Recipes (Recycling Outputs) + +
+ Ctrl+Click on Charcoal in Matrix Mode because it's produced and used within the block. Helmod may not automatically recycle the output. +
+ Ctrl+Click on Charcoal in Matrix Mode if it’s both produced and consumed in the block, since Helmod may not recycle outputs automatically. +
+
+ + +
+ Charcoal in Matrix Mode +
Click anywhere outside the image to close.
+
+
+ +When working with recipes that recycle outputs (like charcoal): + +1. Enable matrix mode. +2. Temporarily disable output product filtering, then Ctrl+Click on Charcoal. +3. Re-enable filtering if needed. +4. Add another basic resource (e.g., water). +5. Use Ctrl+Click or Shift+Click on the item to recycle it. +6. Ctrl+Click the output to tell Helmod to use the recipe for that specific output, unless using Matrix Solver. + +## Helmod Hotkeys + +Helmod includes several shortcuts to make managing production easier: + +- **Ctrl+Click / Shift+Click:** In matrix mode, use these to specify dependencies or exclude items/recipes from calculations. +- **Toggle Matrix Mode:** Press `M` to switch matrix mode on or off. +- **Toggle Filters:** Press `F` to show or hide filters. +- **Ctrl+Mouse Wheel:** Zoom in and out in matrix mode. +- **Ctrl+Z / Ctrl+Y:** Undo or redo your changes. +- **Ctrl+C / Ctrl+V:** Copy and paste parts of your design. + +--- + +[Helmod on Factorio Mods Portal](https://mods.factorio.com/mod/helmod) diff --git a/docs/guides/early-game.md b/docs/guides/early-game.md new file mode 100644 index 00000000..d35236f4 --- /dev/null +++ b/docs/guides/early-game.md @@ -0,0 +1,42 @@ +# Early Game Guide + +Surviving the early game in SeaBlock is about learning how to turn water and a few scraps into the foundation of a factory. + +## Starting Out + - **Mine the Suspicious Rock**: It contains your initial machines, landfill, and wind turbines. +- **Expand Land**: Use landfill sparingly to create enough space for your first machines. +- **Power Setup**: Place all your starting wind turbines to establish free, steady power. + +
+⚠️ Spoiler: The Truth About the Suspicious Rock + + +**Wait!** Legend says this rock is holy and should never be mined. Ancient SeaBlockers believed disturbing it would anger the RNG gods and curse your factory with endless power outages and algae overgrowth. But, you know, you probably need those machines... so YOLO. + +*(Pro tip: you can get the items out by ctrl-clicking it)* + +
+ +## First Resources +- **Electrolysis**: Use an electrolyzer with water to produce slag. Vent the hydrogen and oxygen. +- **Wood**: Forage for wood for early power and circuit boards. +- **Crushing Slag**: Feed slag into a burner crusher for crushed stone. Combine crushed stone with water in a liquifier to create mineralized water. +- **Crystallizing Ores**: Process mineralized water in a crystallizer to obtain saphirite (iron) and stiratite (copper). Crush the ores for smelting. + +## Algae Farming +- **Build an Algae Farm**: Green Algae I yields both green and brown algae. +- **Green Algae → Cellulose Fiber**: Refine into wood pellets and eventually charcoal for fuel. +- **Brown Algae**: Eventually used to make paper but for now just need to be stored. + +## First Technology +- **Complete the Quests**: Crush stiratite, farm green algae, craft a basic circuit board, and build a lab. +- **Research Automation**: Unlocks assembling machines and inserters. +- **Next Targets**: Wood Processing 2 (charcoal), Green Algae Processing (Algae II), Slag Processing, and Water Treatment (Washing). +- **Land Expansion**: Use washing plants to generate landfill more efficiently. + +At this stage you should have: +- Basic copper and iron plate production +- A renewable source of fuel via algae +- Your first circuits and lab running red science + +From here, scale up automation and prepare for the [Mid Game](/guides/mid-game). \ No newline at end of file diff --git a/docs/guides/index.md b/docs/guides/index.md new file mode 100644 index 00000000..12e2f21a --- /dev/null +++ b/docs/guides/index.md @@ -0,0 +1,29 @@ +# SeaBlock Guides + +This section contains detailed walkthroughs, tips, and strategies for every stage of the game. Whether you’re just starting out or aiming for a late-game megabase, you’ll find guidance here. + +## Early Game +- Survive on your tiny starting island. +- Set up slag → ore → plates production. +- Establish algae farms for fuel. +- Unlock your first science packs. + +[Read the Early Game guide →](/guides/early-game) + +## Mid Game +- Transition to advanced ore sorting and metallurgy. +- Expand land area and tackle worm-guarded islands. +- Scale up power beyond algae and steam. +- Automate mid-tier science production. + +[Read the Mid Game guide →](/guides/mid-game) + +## Late Game +- Build advanced circuits, modules, and high-tech alloys. +- Construct a megabase capable of mass science production. +- Push towards space science and the spaceship. + +[Read the Late Game guide →](/guides/late-game) + +Need quick answers while playing? Jump to the [Reference section](/reference/). + diff --git a/docs/guides/late-game.md b/docs/guides/late-game.md new file mode 100644 index 00000000..c069ce3e --- /dev/null +++ b/docs/guides/late-game.md @@ -0,0 +1,32 @@ +# Late Game Guide + +The late game in SeaBlock is where your factory grows into a true megabase. You’ll produce advanced circuits, modules, and prepare for rockets and space science. + +## Core Goals +- **High-Tech Circuits**: Build advanced (red) and processing (blue) circuit production. These require plastics, silicon wafers, gold, and solder. +- **Chemical Infrastructure**: Fully automate oil products—plastic, sulfur, acid, and fuel. +- **Modules**: Start mass-producing productivity and speed modules. Use them in science pack assemblers and high-throughput production lines. + +## Science & Progression +- **Chemical Science (Blue)** +- **Production Science (Purple)** +- **Utility Science (Yellow)** +- **Space Science** + +## Power +- **Nuclear** +- **High-Efficiency Fuels** + +## Megabase Planning +- **Tileable Blocks**: Design science production modules that can be repeated. +- **Trains & Warehouses**: Move bulk resources efficiently. +- **Beacons & Modules**: Maximize output and conserve machine count. + +By the end of late game you should: +- Automate all science packs up to space science +- Run a gigawatt-scale power grid +- Launch rockets continuously +- Scale towards the spaceship and true endgame of SeaBlock + +Congratulations—you’ve turned an oceanic wasteland into an industrial empire! + diff --git a/docs/guides/mid-game.md b/docs/guides/mid-game.md new file mode 100644 index 00000000..2b221012 --- /dev/null +++ b/docs/guides/mid-game.md @@ -0,0 +1,36 @@ +# Mid Game Guide + +By the mid game, you’ve unlocked green science and started expanding your island. Now it’s time to refine production and scale up. + +## Core Goals + +- **Land Expansion**: Use washing plants to generate landfill more efficiently. Clear nearby islands guarded by worms if you need space. +- **Ore Sorting**: Research slag processing and direct ore sorting to obtain tin, lead, nickel, and silicon. +- **Power Upgrade**: Transition from algae/charcoal to solid fuel by combining charcoal with hydrogen. Consider biofuels or early oil processing if available. + +## Production + +- **Circuits**: Move from basic circuits (brown) to electronic circuits (green). This requires tin, lead, and solder. +- **Metallurgy**: Upgrade from simple smelting to blast furnaces and casting for efficiency. +- **Science Packs**: Automate green science fully and start preparing for blue science. + +## Exploration + +- **Worms**: Use turrets or rockets to clear islands. Gather gardens and puffer nests for biological processing. +- **Gardens**: Keep at least a few of each type for future bio-science technologies. + +## Key Technologies + +- **Ore Sorting 2** – access to more refined outputs. +- **Advanced Electronics** – unlocks higher-tier circuits. +- **Bio Processing** – expands algae and plant-based production. +- **Military Upgrades** – better turrets and ammo for clearing worms. + +By the end of mid game you should: + +- Have stable power above algae-only levels +- Produce tin, lead, and other secondary ores +- Automate red and green science comfortably +- Be preparing chemical infrastructure for blue science + +Next, push into the [Late Game](/guides/late-game) to unlock high-tech alloys, modules, and space science. diff --git a/docs/guides/variants/multiplier.md b/docs/guides/variants/multiplier.md new file mode 100644 index 00000000..96e7adbd --- /dev/null +++ b/docs/guides/variants/multiplier.md @@ -0,0 +1,84 @@ +# Multiplier + +## Why use a tech research multiplier? + +Some Seablock players choose to increase the tech research cost multiplier to make the game last longer. With so many items and recipes, you can unlock technologies faster than you can use them at the default 1x setting. Raising the multiplier to 5x, 10x, or even 100x slows down progress and lets you enjoy the mod for more time. Many players find 10x to be a good middle ground, while some prefer the challenge of 100x. + +Seablock is a complex overhaul mod. If you’re new to this type of mod, it’s best to stick with the default 1x multiplier for the intended experience. If you’re comfortable with Seablock or overhaul mods, trying a higher multiplier can be a rewarding challenge. + +## How to set the multiplier + +### FTL techs + +To apply the multiplier to FTL technologies, open the "Settings / Mod settings" screen at startup and make sure to uncheck "SpaceX ignore tech price multiplier". + +
+ Unchecking this box allows the multiplier to be applied to the FTL techs +
+ Unchecking this box lets the multiplier affect FTL techs +
+
+ +### New games + +When starting a new game, go to the "Advanced" tab and enter your desired value in the "Price multiplier" field. + +
+ New game screen +
+ +### Existing saves + +To change the multiplier in an existing save, use this command in the console: + +``` +/c game.difficulty_settings.technology_price_multiplier = 10 +``` + +Change the number to set your preferred multiplier. + +### Multiplayer games + +For multiplayer, edit the `technology_price_multiplier` key in `./data/map-settings.example.json`, save as a new file (e.g., `my-map-settings.json`), and create a save with: + +``` +./bin/x64/factorio --create saves/my-save.zip --map-gen-settings my-map-gen-settings.json --map-settings my-map-settings.json +``` + +## How does the multiplier affect research? + +The multiplier starts applying to technologies after "Water Treatment". + +
+ Tech tree up to water treatment +
+ Techs up to Water Treatment use the default 1x multiplier +
+
+ +
+ Water-treatment +
+ Example: tech cost with 100x multiplier +
+
+ +For example, if a tech normally costs 30, setting the multiplier to 10x will make it cost 300. + +
+ 100x-endgame-cost +
+ The final tech costs 20 million with a 100x multiplier +
+
+ +## Tips for playing with a high multiplier + +The best advice is to [join the Seablock Discord](https://discord.gg/zkg8rdn) for help and discussion about high-multiplier games. The community is friendly and knowledgeable. The [/r/Seablock subreddit](https://www.reddit.com/r/Seablock/) is also a great resource. + +If you want to try a multiplier run, you should already be comfortable with core mechanics like trains and fluids. This isn’t the time to learn LTN setups! Using planners such as [YAFC](https://github.com/ShadowTheAge/yafc), [Foreman](https://github.com/DanielKote/Foreman2), [Helmod](https://mods.factorio.com/mod/helmod), and [Factory Planner](https://mods.factorio.com/mod/factoryplanner) is highly recommended. + +Recommended mods for building a megabase in high-multiplier games: + +- [Seablock megabase fix](https://mods.factorio.com/mod/duff-seablock-megabase): Fixes over-production bugs from productivity modules and production caps. +- [Solar sails](https://mods.factorio.com/mod/solar-sails): Adds a costly item that generates 200MW, helping reduce UPS load in late-game builds. diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 00000000..c6d6c08f --- /dev/null +++ b/docs/index.md @@ -0,0 +1,61 @@ +--- +layout: home + +hero: + name: 'SeaBlock Wiki' + text: 'The comprehensive guide to SeaBlock' + tagline: 'Everything you need to know about the SeaBlock mod for Factorio' + image: + src: /seablock-header.jpg + alt: SeaBlock Wiki + actions: + - theme: brand + text: Get Started + link: /getting-started/ + - theme: alt + text: View on GitHub + link: https://github.com/modded-factorio/SeaBlock + +features: + - title: 🚀 Getting Started + details: New to SeaBlock? Start here with our beginner's guide covering installation, concepts, and first steps on your lonely island. + link: /getting-started/ + - title: 📚 Complete Guides + details: Step-by-step walkthroughs for every stage of the game, from early survival to building a late-game megabase. + link: /guides/ + - title: 🔍 Reference Materials + details: Quick access to recipes, technologies, and item data—perfect for when you need answers mid-factory. + link: /reference/ + - title: 🤝 Community Driven + details: Built by players, for players. Share strategies, add knowledge, and help grow the SeaBlock community. + link: https://github.com/modded-factorio/SeaBlock + - title: 🆓 Free & Open Source + details: The wiki and the modpack are free to use and open to contributions from everyone. + link: https://github.com/modded-factorio/SeaBlock +--- + +## Welcome to the SeaBlock Wiki! 🌊 + +SeaBlock transforms Factorio into a **survival-factory challenge**: you begin stranded on a tiny rock in the middle of an endless ocean, with no natural ore patches and barely any land. Every resource must be engineered from seawater, algae, and chemistry. + +This wiki is your guide through that journey—from your first crushed stone to the final spaceship launch. + +### What You'll Find Here + +- **Getting Started** – Install SeaBlock and learn the fundamentals of survival and resource generation. +- **Guides** – In-depth strategies for early, mid, and late game progression. +- **Reference** – Recipes, technologies, and item data at your fingertips. +- **Community Insights** – Tips, tricks, and designs contributed by fellow players. + +### Start Your Journey + +If you’re new, head straight to the [Getting Started guide](/getting-started/) and learn how to survive those first crucial hours. +Already building? Explore our [Guides](/guides/) for strategies, or jump into the [Reference](/reference/) section when you need quick answers. + +### Contribute & Collaborate + +This wiki thrives on community knowledge. Whether you’ve designed an efficient algae setup, discovered a smart mid-game trick, or just want to clarify a recipe, your contributions are welcome. Visit our [GitHub repository](https://github.com/modded-factorio/SeaBlock) to get involved. + +--- + +_Happy building, and may your seas of sludge turn into seas of science! ⚙️_ diff --git a/docs/public/assets/VPCarbonAds.css b/docs/public/assets/VPCarbonAds.css new file mode 100644 index 00000000..56932db3 --- /dev/null +++ b/docs/public/assets/VPCarbonAds.css @@ -0,0 +1 @@ +.VPCarbonAds[data-v-ae645167]{display:flex;justify-content:center;align-items:center;padding:24px;border-radius:12px;min-height:256px;text-align:center;line-height:18px;font-size:12px;font-weight:500;background-color:var(--vp-carbon-ads-bg-color)}.VPCarbonAds[data-v-ae645167] img{margin:0 auto;border-radius:6px}.VPCarbonAds[data-v-ae645167] .carbon-text{display:block;margin:0 auto;padding-top:12px;color:var(--vp-carbon-ads-text-color);transition:color .25s}.VPCarbonAds[data-v-ae645167] .carbon-text:hover{color:var(--vp-carbon-ads-hover-text-color)}.VPCarbonAds[data-v-ae645167] .carbon-poweredby{display:block;padding-top:6px;font-size:11px;font-weight:500;color:var(--vp-carbon-ads-poweredby-color);text-transform:uppercase;transition:color .25s}.VPCarbonAds[data-v-ae645167] .carbon-poweredby:hover{color:var(--vp-carbon-ads-hover-poweredby-color)}.VPCarbonAds[data-v-ae645167]>div{display:none}.VPCarbonAds[data-v-ae645167]>div:first-of-type{display:block} diff --git a/docs/public/assets/VPLocalSearchBox.css b/docs/public/assets/VPLocalSearchBox.css new file mode 100644 index 00000000..dbf7d0df --- /dev/null +++ b/docs/public/assets/VPLocalSearchBox.css @@ -0,0 +1 @@ +.VPLocalSearchBox[data-v-68e678c9]{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;display:flex}.backdrop[data-v-68e678c9]{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--vp-backdrop-bg-color);transition:opacity .5s}.shell[data-v-68e678c9]{position:relative;padding:12px;margin:64px auto;display:flex;flex-direction:column;gap:16px;background:var(--vp-local-search-bg);width:min(100vw - 60px,900px);height:min-content;max-height:min(100vh - 128px,900px);border-radius:6px}@media (max-width: 767px){.shell[data-v-68e678c9]{margin:0;width:100vw;height:100vh;max-height:none;border-radius:0}}.search-bar[data-v-68e678c9]{border:1px solid var(--vp-c-divider);border-radius:4px;display:flex;align-items:center;padding:0 12px;cursor:text}@media (max-width: 767px){.search-bar[data-v-68e678c9]{padding:0 8px}}.search-bar[data-v-68e678c9]:focus-within{border-color:var(--vp-c-brand-1)}.local-search-icon[data-v-68e678c9]{display:block;font-size:18px}.navigate-icon[data-v-68e678c9]{display:block;font-size:14px}.search-icon[data-v-68e678c9]{margin:8px}@media (max-width: 767px){.search-icon[data-v-68e678c9]{display:none}}.search-input[data-v-68e678c9]{padding:6px 12px;font-size:inherit;width:100%}@media (max-width: 767px){.search-input[data-v-68e678c9]{padding:6px 4px}}.search-actions[data-v-68e678c9]{display:flex;gap:4px}@media (any-pointer: coarse){.search-actions[data-v-68e678c9]{gap:8px}}@media (min-width: 769px){.search-actions.before[data-v-68e678c9]{display:none}}.search-actions button[data-v-68e678c9]{padding:8px}.search-actions button[data-v-68e678c9]:not([disabled]):hover,.toggle-layout-button.detailed-list[data-v-68e678c9]{color:var(--vp-c-brand-1)}.search-actions button.clear-button[data-v-68e678c9]:disabled{opacity:.37}.search-keyboard-shortcuts[data-v-68e678c9]{font-size:.8rem;opacity:75%;display:flex;flex-wrap:wrap;gap:16px;line-height:14px}.search-keyboard-shortcuts span[data-v-68e678c9]{display:flex;align-items:center;gap:4px}@media (max-width: 767px){.search-keyboard-shortcuts[data-v-68e678c9]{display:none}}.search-keyboard-shortcuts kbd[data-v-68e678c9]{background:#8080801a;border-radius:4px;padding:3px 6px;min-width:24px;display:inline-block;text-align:center;vertical-align:middle;border:1px solid rgba(128,128,128,.15);box-shadow:0 2px 2px #0000001a}.results[data-v-68e678c9]{display:flex;flex-direction:column;gap:6px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}.result[data-v-68e678c9]{display:flex;align-items:center;gap:8px;border-radius:4px;transition:none;line-height:1rem;border:solid 2px var(--vp-local-search-result-border);outline:none}.result>div[data-v-68e678c9]{margin:12px;width:100%;overflow:hidden}@media (max-width: 767px){.result>div[data-v-68e678c9]{margin:8px}}.titles[data-v-68e678c9]{display:flex;flex-wrap:wrap;gap:4px;position:relative;z-index:1001;padding:2px 0}.title[data-v-68e678c9]{display:flex;align-items:center;gap:4px}.title.main[data-v-68e678c9]{font-weight:500}.title-icon[data-v-68e678c9]{opacity:.5;font-weight:500;color:var(--vp-c-brand-1)}.title svg[data-v-68e678c9]{opacity:.5}.result.selected[data-v-68e678c9]{--vp-local-search-result-bg: var(--vp-local-search-result-selected-bg);border-color:var(--vp-local-search-result-selected-border)}.excerpt-wrapper[data-v-68e678c9]{position:relative}.excerpt[data-v-68e678c9]{opacity:50%;pointer-events:none;max-height:140px;overflow:hidden;position:relative;margin-top:4px}.result.selected .excerpt[data-v-68e678c9]{opacity:1}.excerpt[data-v-68e678c9] *{font-size:.8rem!important;line-height:130%!important}.titles[data-v-68e678c9] mark,.excerpt[data-v-68e678c9] mark{background-color:var(--vp-local-search-highlight-bg);color:var(--vp-local-search-highlight-text);border-radius:2px;padding:0 2px}.excerpt[data-v-68e678c9] .vp-code-group .tabs{display:none}.excerpt[data-v-68e678c9] .vp-code-group div[class*=language-]{border-radius:8px!important}.excerpt-gradient-bottom[data-v-68e678c9]{position:absolute;bottom:-1px;left:0;width:100%;height:8px;background:linear-gradient(transparent,var(--vp-local-search-result-bg));z-index:1000}.excerpt-gradient-top[data-v-68e678c9]{position:absolute;top:-1px;left:0;width:100%;height:8px;background:linear-gradient(var(--vp-local-search-result-bg),transparent);z-index:1000}.result.selected .titles[data-v-68e678c9],.result.selected .title-icon[data-v-68e678c9]{color:var(--vp-c-brand-1)!important}.no-results[data-v-68e678c9]{font-size:.9rem;text-align:center;padding:12px}svg[data-v-68e678c9]{flex:none} diff --git a/docs/public/assets/vitepress-extracted-renderer.css b/docs/public/assets/vitepress-extracted-renderer.css new file mode 100644 index 00000000..481792f3 --- /dev/null +++ b/docs/public/assets/vitepress-extracted-renderer.css @@ -0,0 +1 @@ +.VPBackdrop[data-v-54a304ca]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--vp-z-index-backdrop);background:var(--vp-backdrop-bg-color);transition:opacity .5s}.VPBackdrop.fade-enter-from[data-v-54a304ca],.VPBackdrop.fade-leave-to[data-v-54a304ca]{opacity:0}.VPBackdrop.fade-leave-active[data-v-54a304ca]{transition-duration:.25s}@media (min-width: 1280px){.VPBackdrop[data-v-54a304ca]{display:none}}.NotFound[data-v-6ff51ddd]{padding:64px 24px 96px;text-align:center}@media (min-width: 768px){.NotFound[data-v-6ff51ddd]{padding:96px 32px 168px}}.code[data-v-6ff51ddd]{line-height:64px;font-size:64px;font-weight:600}.title[data-v-6ff51ddd]{padding-top:12px;letter-spacing:2px;line-height:20px;font-size:20px;font-weight:700}.divider[data-v-6ff51ddd]{margin:24px auto 18px;width:64px;height:1px;background-color:var(--vp-c-divider)}.quote[data-v-6ff51ddd]{margin:0 auto;max-width:256px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.action[data-v-6ff51ddd]{padding-top:20px}.link[data-v-6ff51ddd]{display:inline-block;border:1px solid var(--vp-c-brand-1);border-radius:16px;padding:3px 16px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:border-color .25s,color .25s}.link[data-v-6ff51ddd]:hover{border-color:var(--vp-c-brand-2);color:var(--vp-c-brand-2)}.root[data-v-53c99d69]{position:relative;z-index:1}.nested[data-v-53c99d69]{padding-right:16px;padding-left:16px}.outline-link[data-v-53c99d69]{display:block;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .5s}.outline-link[data-v-53c99d69]:hover,.outline-link.active[data-v-53c99d69]{color:var(--vp-c-text-1);transition:color .25s}.outline-link.nested[data-v-53c99d69]{padding-left:13px}.VPDocAsideOutline[data-v-f610f197]{display:none}.VPDocAsideOutline.has-outline[data-v-f610f197]{display:block}.content[data-v-f610f197]{position:relative;border-left:1px solid var(--vp-c-divider);padding-left:16px;font-size:13px;font-weight:500}.outline-marker[data-v-f610f197]{position:absolute;top:32px;left:-1px;z-index:0;opacity:0;width:2px;border-radius:2px;height:18px;background-color:var(--vp-c-brand-1);transition:top .25s cubic-bezier(0,1,.5,1),background-color .5s,opacity .25s}.outline-title[data-v-f610f197]{line-height:32px;font-size:14px;font-weight:600}.VPDocAside[data-v-cb998dce]{display:flex;flex-direction:column;flex-grow:1}.spacer[data-v-cb998dce]{flex-grow:1}.VPDocAside[data-v-cb998dce] .spacer+.VPDocAsideSponsors,.VPDocAside[data-v-cb998dce] .spacer+.VPDocAsideCarbonAds{margin-top:24px}.VPDocAside[data-v-cb998dce] .VPDocAsideSponsors+.VPDocAsideCarbonAds{margin-top:16px}.VPLastUpdated[data-v-1bb0c8a8]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 640px){.VPLastUpdated[data-v-1bb0c8a8]{line-height:32px;font-size:14px;font-weight:500}}.VPDocFooter[data-v-1bcd8184]{margin-top:64px}.edit-info[data-v-1bcd8184]{padding-bottom:18px}@media (min-width: 640px){.edit-info[data-v-1bcd8184]{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px}}.edit-link-button[data-v-1bcd8184]{display:flex;align-items:center;border:0;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.edit-link-button[data-v-1bcd8184]:hover{color:var(--vp-c-brand-2)}.edit-link-icon[data-v-1bcd8184]{margin-right:8px}.prev-next[data-v-1bcd8184]{border-top:1px solid var(--vp-c-divider);padding-top:24px;display:grid;grid-row-gap:8px}@media (min-width: 640px){.prev-next[data-v-1bcd8184]{grid-template-columns:repeat(2,1fr);grid-column-gap:16px}}.pager-link[data-v-1bcd8184]{display:block;border:1px solid var(--vp-c-divider);border-radius:8px;padding:11px 16px 13px;width:100%;height:100%;transition:border-color .25s}.pager-link[data-v-1bcd8184]:hover{border-color:var(--vp-c-brand-1)}.pager-link.next[data-v-1bcd8184]{margin-left:auto;text-align:right}.desc[data-v-1bcd8184]{display:block;line-height:20px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.title[data-v-1bcd8184]{display:block;line-height:20px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.VPDoc[data-v-e6f2a212]{padding:32px 24px 96px;width:100%}@media (min-width: 768px){.VPDoc[data-v-e6f2a212]{padding:48px 32px 128px}}@media (min-width: 960px){.VPDoc[data-v-e6f2a212]{padding:48px 32px 0}.VPDoc:not(.has-sidebar) .container[data-v-e6f2a212]{display:flex;justify-content:center;max-width:992px}.VPDoc:not(.has-sidebar) .content[data-v-e6f2a212]{max-width:752px}}@media (min-width: 1280px){.VPDoc .container[data-v-e6f2a212]{display:flex;justify-content:center}.VPDoc .aside[data-v-e6f2a212]{display:block}}@media (min-width: 1440px){.VPDoc:not(.has-sidebar) .content[data-v-e6f2a212]{max-width:784px}.VPDoc:not(.has-sidebar) .container[data-v-e6f2a212]{max-width:1104px}}.container[data-v-e6f2a212]{margin:0 auto;width:100%}.aside[data-v-e6f2a212]{position:relative;display:none;order:2;flex-grow:1;padding-left:32px;width:100%;max-width:256px}.left-aside[data-v-e6f2a212]{order:1;padding-left:unset;padding-right:32px}.aside-container[data-v-e6f2a212]{position:fixed;top:0;padding-top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + var(--vp-doc-top-height, 0px) + 48px);width:224px;height:100vh;overflow-x:hidden;overflow-y:auto;scrollbar-width:none}.aside-container[data-v-e6f2a212]::-webkit-scrollbar{display:none}.aside-curtain[data-v-e6f2a212]{position:fixed;bottom:0;z-index:10;width:224px;height:32px;background:linear-gradient(transparent,var(--vp-c-bg) 70%)}.aside-content[data-v-e6f2a212]{display:flex;flex-direction:column;min-height:calc(100vh - (var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px));padding-bottom:32px}.content[data-v-e6f2a212]{position:relative;margin:0 auto;width:100%}@media (min-width: 960px){.content[data-v-e6f2a212]{padding:0 32px 128px}}@media (min-width: 1280px){.content[data-v-e6f2a212]{order:1;margin:0;min-width:640px}}.content-container[data-v-e6f2a212]{margin:0 auto}.VPDoc.has-aside .content-container[data-v-e6f2a212]{max-width:688px}.VPButton[data-v-93dc4167]{display:inline-block;border:1px solid transparent;text-align:center;font-weight:600;white-space:nowrap;transition:color .25s,border-color .25s,background-color .25s}.VPButton[data-v-93dc4167]:active{transition:color .1s,border-color .1s,background-color .1s}.VPButton.medium[data-v-93dc4167]{border-radius:20px;padding:0 20px;line-height:38px;font-size:14px}.VPButton.big[data-v-93dc4167]{border-radius:24px;padding:0 24px;line-height:46px;font-size:16px}.VPButton.brand[data-v-93dc4167]{border-color:var(--vp-button-brand-border);color:var(--vp-button-brand-text);background-color:var(--vp-button-brand-bg)}.VPButton.brand[data-v-93dc4167]:hover{border-color:var(--vp-button-brand-hover-border);color:var(--vp-button-brand-hover-text);background-color:var(--vp-button-brand-hover-bg)}.VPButton.brand[data-v-93dc4167]:active{border-color:var(--vp-button-brand-active-border);color:var(--vp-button-brand-active-text);background-color:var(--vp-button-brand-active-bg)}.VPButton.alt[data-v-93dc4167]{border-color:var(--vp-button-alt-border);color:var(--vp-button-alt-text);background-color:var(--vp-button-alt-bg)}.VPButton.alt[data-v-93dc4167]:hover{border-color:var(--vp-button-alt-hover-border);color:var(--vp-button-alt-hover-text);background-color:var(--vp-button-alt-hover-bg)}.VPButton.alt[data-v-93dc4167]:active{border-color:var(--vp-button-alt-active-border);color:var(--vp-button-alt-active-text);background-color:var(--vp-button-alt-active-bg)}.VPButton.sponsor[data-v-93dc4167]{border-color:var(--vp-button-sponsor-border);color:var(--vp-button-sponsor-text);background-color:var(--vp-button-sponsor-bg)}.VPButton.sponsor[data-v-93dc4167]:hover{border-color:var(--vp-button-sponsor-hover-border);color:var(--vp-button-sponsor-hover-text);background-color:var(--vp-button-sponsor-hover-bg)}.VPButton.sponsor[data-v-93dc4167]:active{border-color:var(--vp-button-sponsor-active-border);color:var(--vp-button-sponsor-active-text);background-color:var(--vp-button-sponsor-active-bg)}html:not(.dark) .VPImage.dark[data-v-ab19afbb]{display:none}.dark .VPImage.light[data-v-ab19afbb]{display:none}.VPHero[data-v-dd8814ff]{margin-top:calc((var(--vp-nav-height) + var(--vp-layout-top-height, 0px)) * -1);padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px) 24px 48px}@media (min-width: 640px){.VPHero[data-v-dd8814ff]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 48px 64px}}@media (min-width: 960px){.VPHero[data-v-dd8814ff]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 64px 64px}}.container[data-v-dd8814ff]{display:flex;flex-direction:column;margin:0 auto;max-width:1152px}@media (min-width: 960px){.container[data-v-dd8814ff]{flex-direction:row}}.main[data-v-dd8814ff]{position:relative;z-index:10;order:2;flex-grow:1;flex-shrink:0}.VPHero.has-image .container[data-v-dd8814ff]{text-align:center}@media (min-width: 960px){.VPHero.has-image .container[data-v-dd8814ff]{text-align:left}}@media (min-width: 960px){.main[data-v-dd8814ff]{order:1;width:calc((100% / 3) * 2)}.VPHero.has-image .main[data-v-dd8814ff]{max-width:592px}}.heading[data-v-dd8814ff]{display:flex;flex-direction:column}.name[data-v-dd8814ff],.text[data-v-dd8814ff]{width:fit-content;max-width:392px;letter-spacing:-.4px;line-height:40px;font-size:32px;font-weight:700;white-space:pre-wrap}.VPHero.has-image .name[data-v-dd8814ff],.VPHero.has-image .text[data-v-dd8814ff]{margin:0 auto}.name[data-v-dd8814ff]{color:var(--vp-home-hero-name-color)}.clip[data-v-dd8814ff]{background:var(--vp-home-hero-name-background);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--vp-home-hero-name-color)}@media (min-width: 640px){.name[data-v-dd8814ff],.text[data-v-dd8814ff]{max-width:576px;line-height:56px;font-size:48px}}@media (min-width: 960px){.name[data-v-dd8814ff],.text[data-v-dd8814ff]{line-height:64px;font-size:56px}.VPHero.has-image .name[data-v-dd8814ff],.VPHero.has-image .text[data-v-dd8814ff]{margin:0}}.tagline[data-v-dd8814ff]{padding-top:8px;max-width:392px;line-height:28px;font-size:18px;font-weight:500;white-space:pre-wrap;color:var(--vp-c-text-2)}.VPHero.has-image .tagline[data-v-dd8814ff]{margin:0 auto}@media (min-width: 640px){.tagline[data-v-dd8814ff]{padding-top:12px;max-width:576px;line-height:32px;font-size:20px}}@media (min-width: 960px){.tagline[data-v-dd8814ff]{line-height:36px;font-size:24px}.VPHero.has-image .tagline[data-v-dd8814ff]{margin:0}}.actions[data-v-dd8814ff]{display:flex;flex-wrap:wrap;margin:-6px;padding-top:24px}.VPHero.has-image .actions[data-v-dd8814ff]{justify-content:center}@media (min-width: 640px){.actions[data-v-dd8814ff]{padding-top:32px}}@media (min-width: 960px){.VPHero.has-image .actions[data-v-dd8814ff]{justify-content:flex-start}}.action[data-v-dd8814ff]{flex-shrink:0;padding:6px}.image[data-v-dd8814ff]{order:1;margin:-76px -24px -48px}@media (min-width: 640px){.image[data-v-dd8814ff]{margin:-108px -24px -48px}}@media (min-width: 960px){.image[data-v-dd8814ff]{flex-grow:1;order:2;margin:0;min-height:100%}}.image-container[data-v-dd8814ff]{position:relative;margin:0 auto;width:320px;height:320px}@media (min-width: 640px){.image-container[data-v-dd8814ff]{width:392px;height:392px}}@media (min-width: 960px){.image-container[data-v-dd8814ff]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;transform:translate(-32px,-32px)}}.image-bg[data-v-dd8814ff]{position:absolute;top:50%;left:50%;border-radius:50%;width:192px;height:192px;background-image:var(--vp-home-hero-image-background-image);filter:var(--vp-home-hero-image-filter);transform:translate(-50%,-50%)}@media (min-width: 640px){.image-bg[data-v-dd8814ff]{width:256px;height:256px}}@media (min-width: 960px){.image-bg[data-v-dd8814ff]{width:320px;height:320px}}[data-v-dd8814ff] .image-src{position:absolute;top:50%;left:50%;max-width:192px;max-height:192px;transform:translate(-50%,-50%)}@media (min-width: 640px){[data-v-dd8814ff] .image-src{max-width:256px;max-height:256px}}@media (min-width: 960px){[data-v-dd8814ff] .image-src{max-width:320px;max-height:320px}}.VPFeature[data-v-bd37d1a2]{display:block;border:1px solid var(--vp-c-bg-soft);border-radius:12px;height:100%;background-color:var(--vp-c-bg-soft);transition:border-color .25s,background-color .25s}.VPFeature.link[data-v-bd37d1a2]:hover{border-color:var(--vp-c-brand-1)}.box[data-v-bd37d1a2]{display:flex;flex-direction:column;padding:24px;height:100%}.box[data-v-bd37d1a2]>.VPImage{margin-bottom:20px}.icon[data-v-bd37d1a2]{display:flex;justify-content:center;align-items:center;margin-bottom:20px;border-radius:6px;background-color:var(--vp-c-default-soft);width:48px;height:48px;font-size:24px;transition:background-color .25s}.title[data-v-bd37d1a2]{line-height:24px;font-size:16px;font-weight:600}.details[data-v-bd37d1a2]{flex-grow:1;padding-top:8px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.link-text[data-v-bd37d1a2]{padding-top:8px}.link-text-value[data-v-bd37d1a2]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.link-text-icon[data-v-bd37d1a2]{margin-left:6px}.VPFeatures[data-v-b1eea84a]{position:relative;padding:0 24px}@media (min-width: 640px){.VPFeatures[data-v-b1eea84a]{padding:0 48px}}@media (min-width: 960px){.VPFeatures[data-v-b1eea84a]{padding:0 64px}}.container[data-v-b1eea84a]{margin:0 auto;max-width:1152px}.items[data-v-b1eea84a]{display:flex;flex-wrap:wrap;margin:-8px}.item[data-v-b1eea84a]{padding:8px;width:100%}@media (min-width: 640px){.item.grid-2[data-v-b1eea84a],.item.grid-4[data-v-b1eea84a],.item.grid-6[data-v-b1eea84a]{width:50%}}@media (min-width: 768px){.item.grid-2[data-v-b1eea84a],.item.grid-4[data-v-b1eea84a]{width:50%}.item.grid-3[data-v-b1eea84a],.item.grid-6[data-v-b1eea84a]{width:calc(100% / 3)}}@media (min-width: 960px){.item.grid-4[data-v-b1eea84a]{width:25%}}.container[data-v-c141a4bd]{margin:auto;width:100%;max-width:1280px;padding:0 24px}@media (min-width: 640px){.container[data-v-c141a4bd]{padding:0 48px}}@media (min-width: 960px){.container[data-v-c141a4bd]{width:100%;padding:0 64px}}.vp-doc[data-v-c141a4bd] .VPHomeSponsors,.vp-doc[data-v-c141a4bd] .VPTeamPage{margin-left:var(--vp-offset, calc(50% - 50vw) );margin-right:var(--vp-offset, calc(50% - 50vw) )}.vp-doc[data-v-c141a4bd] .VPHomeSponsors h2{border-top:none;letter-spacing:normal}.vp-doc[data-v-c141a4bd] .VPHomeSponsors a,.vp-doc[data-v-c141a4bd] .VPTeamPage a{text-decoration:none}.VPHome[data-v-e07eaea7]{margin-bottom:96px}@media (min-width: 768px){.VPHome[data-v-e07eaea7]{margin-bottom:128px}}.VPContent[data-v-9a6c75ad]{flex-grow:1;flex-shrink:0;margin:var(--vp-layout-top-height, 0px) auto 0;width:100%}.VPContent.is-home[data-v-9a6c75ad]{width:100%;max-width:100%}.VPContent.has-sidebar[data-v-9a6c75ad]{margin:0}@media (min-width: 960px){.VPContent[data-v-9a6c75ad]{padding-top:var(--vp-nav-height)}.VPContent.has-sidebar[data-v-9a6c75ad]{margin:var(--vp-layout-top-height, 0px) 0 0;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPContent.has-sidebar[data-v-9a6c75ad]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.VPFooter[data-v-566314d4]{position:relative;z-index:var(--vp-z-index-footer);border-top:1px solid var(--vp-c-gutter);padding:32px 24px;background-color:var(--vp-c-bg)}.VPFooter.has-sidebar[data-v-566314d4]{display:none}.VPFooter[data-v-566314d4] a{text-decoration-line:underline;text-underline-offset:2px;transition:color .25s}.VPFooter[data-v-566314d4] a:hover{color:var(--vp-c-text-1)}@media (min-width: 768px){.VPFooter[data-v-566314d4]{padding:32px}}.container[data-v-566314d4]{margin:0 auto;max-width:var(--vp-layout-max-width);text-align:center}.message[data-v-566314d4],.copyright[data-v-566314d4]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.VPLocalNavOutlineDropdown[data-v-6b867909]{padding:12px 20px 11px}@media (min-width: 960px){.VPLocalNavOutlineDropdown[data-v-6b867909]{padding:12px 36px 11px}}.VPLocalNavOutlineDropdown button[data-v-6b867909]{display:block;font-size:12px;font-weight:500;line-height:24px;color:var(--vp-c-text-2);transition:color .5s;position:relative}.VPLocalNavOutlineDropdown button[data-v-6b867909]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPLocalNavOutlineDropdown button.open[data-v-6b867909]{color:var(--vp-c-text-1)}.icon[data-v-6b867909]{display:inline-block;vertical-align:middle;margin-left:2px;font-size:14px;transform:rotate(0);transition:transform .25s}@media (min-width: 960px){.VPLocalNavOutlineDropdown button[data-v-6b867909]{font-size:14px}.icon[data-v-6b867909]{font-size:16px}}.open>.icon[data-v-6b867909]{transform:rotate(90deg)}.items[data-v-6b867909]{position:absolute;top:40px;right:16px;left:16px;display:grid;gap:1px;border:1px solid var(--vp-c-border);border-radius:8px;background-color:var(--vp-c-gutter);max-height:calc(var(--vp-vh, 100vh) - 86px);overflow:hidden auto;box-shadow:var(--vp-shadow-3)}@media (min-width: 960px){.items[data-v-6b867909]{right:auto;left:calc(var(--vp-sidebar-width) + 32px);width:320px}}.header[data-v-6b867909]{background-color:var(--vp-c-bg-soft)}.top-link[data-v-6b867909]{display:block;padding:0 16px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.outline[data-v-6b867909]{padding:8px 0;background-color:var(--vp-c-bg-soft)}.flyout-enter-active[data-v-6b867909]{transition:all .2s ease-out}.flyout-leave-active[data-v-6b867909]{transition:all .15s ease-in}.flyout-enter-from[data-v-6b867909],.flyout-leave-to[data-v-6b867909]{opacity:0;transform:translateY(-16px)}.VPLocalNav[data-v-2488c25a]{position:sticky;top:0;left:0;z-index:var(--vp-z-index-local-nav);border-bottom:1px solid var(--vp-c-gutter);padding-top:var(--vp-layout-top-height, 0px);width:100%;background-color:var(--vp-local-nav-bg-color)}.VPLocalNav.fixed[data-v-2488c25a]{position:fixed}@media (min-width: 960px){.VPLocalNav[data-v-2488c25a]{top:var(--vp-nav-height)}.VPLocalNav.has-sidebar[data-v-2488c25a]{padding-left:var(--vp-sidebar-width)}.VPLocalNav.empty[data-v-2488c25a]{display:none}}@media (min-width: 1280px){.VPLocalNav[data-v-2488c25a]{display:none}}@media (min-width: 1440px){.VPLocalNav.has-sidebar[data-v-2488c25a]{padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.container[data-v-2488c25a]{display:flex;justify-content:space-between;align-items:center}.menu[data-v-2488c25a]{display:flex;align-items:center;padding:12px 24px 11px;line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.menu[data-v-2488c25a]:hover{color:var(--vp-c-text-1);transition:color .25s}@media (min-width: 768px){.menu[data-v-2488c25a]{padding:0 32px}}@media (min-width: 960px){.menu[data-v-2488c25a]{display:none}}.menu-icon[data-v-2488c25a]{margin-right:8px;font-size:14px}.VPOutlineDropdown[data-v-2488c25a]{padding:12px 24px 11px}@media (min-width: 768px){.VPOutlineDropdown[data-v-2488c25a]{padding:12px 32px 11px}}.VPSwitch[data-v-b4ccac88]{position:relative;border-radius:11px;display:block;width:40px;height:22px;flex-shrink:0;border:1px solid var(--vp-input-border-color);background-color:var(--vp-input-switch-bg-color);transition:border-color .25s!important}.VPSwitch[data-v-b4ccac88]:hover{border-color:var(--vp-c-brand-1)}.check[data-v-b4ccac88]{position:absolute;top:1px;left:1px;width:18px;height:18px;border-radius:50%;background-color:var(--vp-c-neutral-inverse);box-shadow:var(--vp-shadow-1);transition:transform .25s!important}.icon[data-v-b4ccac88]{position:relative;display:block;width:18px;height:18px;border-radius:50%;overflow:hidden}.icon[data-v-b4ccac88] [class^=vpi-]{position:absolute;top:3px;left:3px;width:12px;height:12px;color:var(--vp-c-text-2)}.dark .icon[data-v-b4ccac88] [class^=vpi-]{color:var(--vp-c-text-1);transition:opacity .25s!important}.sun[data-v-be9742d9]{opacity:1}.moon[data-v-be9742d9],.dark .sun[data-v-be9742d9]{opacity:0}.dark .moon[data-v-be9742d9]{opacity:1}.dark .VPSwitchAppearance[data-v-be9742d9] .check{transform:translate(18px)}.VPNavBarAppearance[data-v-3f90c1a5]{display:none}@media (min-width: 1280px){.VPNavBarAppearance[data-v-3f90c1a5]{display:flex;align-items:center}}.VPMenuGroup+.VPMenuLink[data-v-7eeeb2dc]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.link[data-v-7eeeb2dc]{display:block;border-radius:6px;padding:0 12px;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);white-space:nowrap;transition:background-color .25s,color .25s}.link[data-v-7eeeb2dc]:hover{color:var(--vp-c-brand-1);background-color:var(--vp-c-default-soft)}.link.active[data-v-7eeeb2dc]{color:var(--vp-c-brand-1)}.VPMenuGroup[data-v-a6b0397c]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.VPMenuGroup[data-v-a6b0397c]:first-child{margin-top:0;border-top:0;padding-top:0}.VPMenuGroup+.VPMenuGroup[data-v-a6b0397c]{margin-top:12px;border-top:1px solid var(--vp-c-divider)}.title[data-v-a6b0397c]{padding:0 12px;line-height:32px;font-size:14px;font-weight:600;color:var(--vp-c-text-2);white-space:nowrap;transition:color .25s}.VPMenu[data-v-20ed86d6]{border-radius:12px;padding:12px;min-width:128px;border:1px solid var(--vp-c-divider);background-color:var(--vp-c-bg-elv);box-shadow:var(--vp-shadow-3);transition:background-color .5s;max-height:calc(100vh - var(--vp-nav-height));overflow-y:auto}.VPMenu[data-v-20ed86d6] .group{margin:0 -12px;padding:0 12px 12px}.VPMenu[data-v-20ed86d6] .group+.group{border-top:1px solid var(--vp-c-divider);padding:11px 12px 12px}.VPMenu[data-v-20ed86d6] .group:last-child{padding-bottom:0}.VPMenu[data-v-20ed86d6] .group+.item{border-top:1px solid var(--vp-c-divider);padding:11px 16px 0}.VPMenu[data-v-20ed86d6] .item{padding:0 16px;white-space:nowrap}.VPMenu[data-v-20ed86d6] .label{flex-grow:1;line-height:28px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.VPMenu[data-v-20ed86d6] .action{padding-left:24px}.VPFlyout[data-v-bfe7971f]{position:relative}.VPFlyout[data-v-bfe7971f]:hover{color:var(--vp-c-brand-1);transition:color .25s}.VPFlyout:hover .text[data-v-bfe7971f]{color:var(--vp-c-text-2)}.VPFlyout:hover .icon[data-v-bfe7971f]{fill:var(--vp-c-text-2)}.VPFlyout.active .text[data-v-bfe7971f]{color:var(--vp-c-brand-1)}.VPFlyout.active:hover .text[data-v-bfe7971f]{color:var(--vp-c-brand-2)}.button[aria-expanded=false]+.menu[data-v-bfe7971f]{opacity:0;visibility:hidden;transform:translateY(0)}.VPFlyout:hover .menu[data-v-bfe7971f],.button[aria-expanded=true]+.menu[data-v-bfe7971f]{opacity:1;visibility:visible;transform:translateY(0)}.button[data-v-bfe7971f]{display:flex;align-items:center;padding:0 12px;height:var(--vp-nav-height);color:var(--vp-c-text-1);transition:color .5s}.text[data-v-bfe7971f]{display:flex;align-items:center;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.option-icon[data-v-bfe7971f]{margin-right:0;font-size:16px}.text-icon[data-v-bfe7971f]{margin-left:4px;font-size:14px}.icon[data-v-bfe7971f]{font-size:20px;transition:fill .25s}.menu[data-v-bfe7971f]{position:absolute;top:calc(var(--vp-nav-height) / 2 + 20px);right:0;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s,transform .25s}.VPSocialLink[data-v-60a9a2d3]{display:flex;justify-content:center;align-items:center;width:36px;height:36px;color:var(--vp-c-text-2);transition:color .5s}.VPSocialLink[data-v-60a9a2d3]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPSocialLink[data-v-60a9a2d3]>svg,.VPSocialLink[data-v-60a9a2d3]>[class^=vpi-social-]{width:20px;height:20px;fill:currentColor}.VPSocialLinks[data-v-e71e869c]{display:flex;justify-content:center}.VPNavBarExtra[data-v-f953d92f]{display:none;margin-right:-12px}@media (min-width: 768px){.VPNavBarExtra[data-v-f953d92f]{display:block}}@media (min-width: 1280px){.VPNavBarExtra[data-v-f953d92f]{display:none}}.trans-title[data-v-f953d92f]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.item.appearance[data-v-f953d92f],.item.social-links[data-v-f953d92f]{display:flex;align-items:center;padding:0 12px}.item.appearance[data-v-f953d92f]{min-width:176px}.appearance-action[data-v-f953d92f]{margin-right:-2px}.social-links-list[data-v-f953d92f]{margin:-4px -8px}.VPNavBarHamburger[data-v-6bee1efd]{display:flex;justify-content:center;align-items:center;width:48px;height:var(--vp-nav-height)}@media (min-width: 768px){.VPNavBarHamburger[data-v-6bee1efd]{display:none}}.container[data-v-6bee1efd]{position:relative;width:16px;height:14px;overflow:hidden}.VPNavBarHamburger:hover .top[data-v-6bee1efd]{top:0;left:0;transform:translate(4px)}.VPNavBarHamburger:hover .middle[data-v-6bee1efd]{top:6px;left:0;transform:translate(0)}.VPNavBarHamburger:hover .bottom[data-v-6bee1efd]{top:12px;left:0;transform:translate(8px)}.VPNavBarHamburger.active .top[data-v-6bee1efd]{top:6px;transform:translate(0) rotate(225deg)}.VPNavBarHamburger.active .middle[data-v-6bee1efd]{top:6px;transform:translate(16px)}.VPNavBarHamburger.active .bottom[data-v-6bee1efd]{top:6px;transform:translate(0) rotate(135deg)}.VPNavBarHamburger.active:hover .top[data-v-6bee1efd],.VPNavBarHamburger.active:hover .middle[data-v-6bee1efd],.VPNavBarHamburger.active:hover .bottom[data-v-6bee1efd]{background-color:var(--vp-c-text-2);transition:top .25s,background-color .25s,transform .25s}.top[data-v-6bee1efd],.middle[data-v-6bee1efd],.bottom[data-v-6bee1efd]{position:absolute;width:16px;height:2px;background-color:var(--vp-c-text-1);transition:top .25s,background-color .5s,transform .25s}.top[data-v-6bee1efd]{top:0;left:0;transform:translate(0)}.middle[data-v-6bee1efd]{top:6px;left:0;transform:translate(8px)}.bottom[data-v-6bee1efd]{top:12px;left:0;transform:translate(4px)}.VPNavBarMenuLink[data-v-815115f5]{display:flex;align-items:center;padding:0 12px;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.VPNavBarMenuLink.active[data-v-815115f5],.VPNavBarMenuLink[data-v-815115f5]:hover{color:var(--vp-c-brand-1)}.VPNavBarMenu[data-v-afb2845e]{display:none}@media (min-width: 768px){.VPNavBarMenu[data-v-afb2845e]{display:flex}}/*! @docsearch/css 3.8.2 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */:root{--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:rgba(101,108,133,.8);--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 hsla(0,0%,100%,.5),0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px rgba(30,35,90,.4);--docsearch-key-pressed-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 1px 0 rgba(30,35,90,.4);--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 rgba(69,98,155,.12)}html[data-theme=dark]{--docsearch-text-color:#f5f6f7;--docsearch-container-background:rgba(9,10,17,.8);--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 rgba(3,4,9,.3);--docsearch-key-pressed-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 1px 1px 0 #0304094d;--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 rgba(73,76,106,.5),0 -4px 8px 0 rgba(0,0,0,.2);--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}.DocSearch-Button{align-items:center;background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;display:flex;font-weight:500;height:36px;justify-content:space-between;margin:0 0 0 16px;padding:0 8px;-webkit-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:none}.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border:0;border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 2px;position:relative;top:-1px;width:20px}.DocSearch-Button-Key--pressed{box-shadow:var(--docsearch-key-pressed-shadow);transform:translate3d(0,1px,0)}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder{display:none}}.DocSearch--active{overflow:hidden!important}.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a{text-decoration:none}.DocSearch-Link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;font:inherit;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:var(--docsearch-text-color);flex:1;font:inherit;font-size:1.2em;height:100%;outline:none;padding:0 0 0 8px;width:80%}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator{display:none}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{animation:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0;stroke-width:var(--docsearch-icon-stroke-width)}}.DocSearch-Reset{animation:fade-in .1s ease-in forwards;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;padding:2px;right:0;stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Cancel{display:none}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:transparent}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{color:var(--docsearch-muted-color);display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--deleting{transition:none}}.DocSearch-Hit--deleting{opacity:0;transition:all .25s linear}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--favoriting{transition:none}}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:all .25s linear;transition-delay:.25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;stroke-width:var(--docsearch-icon-stroke-width);width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color);stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:background-color .1s ease-in}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{transition:none}}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:none}}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:none;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li{align-items:center;display:flex}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{align-items:center;background:var(--docsearch-key-gradient);border:0;border-radius:2px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;width:20px}.DocSearch-VisuallyHiddenForAccessibility{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}@media (max-width:768px){:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Dropdown{max-height:calc(var(--docsearch-vh, 1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Cancel{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:none;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}[class*=DocSearch]{--docsearch-primary-color: var(--vp-c-brand-1);--docsearch-highlight-color: var(--docsearch-primary-color);--docsearch-text-color: var(--vp-c-text-1);--docsearch-muted-color: var(--vp-c-text-2);--docsearch-searchbox-shadow: none;--docsearch-searchbox-background: transparent;--docsearch-searchbox-focus-background: transparent;--docsearch-key-gradient: transparent;--docsearch-key-shadow: none;--docsearch-modal-background: var(--vp-c-bg-soft);--docsearch-footer-background: var(--vp-c-bg)}.dark [class*=DocSearch]{--docsearch-modal-shadow: none;--docsearch-footer-shadow: none;--docsearch-logo-color: var(--vp-c-text-2);--docsearch-hit-background: var(--vp-c-default-soft);--docsearch-hit-color: var(--vp-c-text-2);--docsearch-hit-shadow: none}.DocSearch-Button{display:flex;justify-content:center;align-items:center;margin:0;padding:0;width:48px;height:55px;background:transparent;transition:border-color .25s}.DocSearch-Button:hover{background:transparent}.DocSearch-Button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.DocSearch-Button-Key--pressed{transform:none;box-shadow:none}.DocSearch-Button:focus:not(:focus-visible){outline:none!important}@media (min-width: 768px){.DocSearch-Button{justify-content:flex-start;border:1px solid transparent;border-radius:8px;padding:0 10px 0 12px;width:100%;height:40px;background-color:var(--vp-c-bg-alt)}.DocSearch-Button:hover{border-color:var(--vp-c-brand-1);background:var(--vp-c-bg-alt)}}.DocSearch-Button .DocSearch-Button-Container{display:flex;align-items:center}.DocSearch-Button .DocSearch-Search-Icon{position:relative;width:16px;height:16px;color:var(--vp-c-text-1);fill:currentColor;transition:color .5s}.DocSearch-Button:hover .DocSearch-Search-Icon{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Search-Icon{top:1px;margin-right:8px;width:14px;height:14px;color:var(--vp-c-text-2)}}.DocSearch-Button .DocSearch-Button-Placeholder{display:none;margin-top:2px;padding:0 16px 0 0;font-size:13px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.DocSearch-Button:hover .DocSearch-Button-Placeholder{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Placeholder{display:inline-block}}.DocSearch-Button .DocSearch-Button-Keys{direction:ltr;display:none;min-width:auto}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Keys{display:flex;align-items:center}}.DocSearch-Button .DocSearch-Button-Key{display:block;margin:2px 0 0;border:1px solid var(--vp-c-divider);border-right:none;border-radius:4px 0 0 4px;padding-left:6px;min-width:0;width:auto;height:22px;line-height:22px;font-family:var(--vp-font-family-base);font-size:12px;font-weight:500;transition:color .5s,border-color .5s}.DocSearch-Button .DocSearch-Button-Key+.DocSearch-Button-Key{border-right:1px solid var(--vp-c-divider);border-left:none;border-radius:0 4px 4px 0;padding-left:2px;padding-right:6px}.DocSearch-Button .DocSearch-Button-Key:first-child{font-size:0!important}.DocSearch-Button .DocSearch-Button-Key:first-child:after{content:"Ctrl";font-size:12px;letter-spacing:normal;color:var(--docsearch-muted-color)}.mac .DocSearch-Button .DocSearch-Button-Key:first-child:after{content:"⌘"}.DocSearch-Button .DocSearch-Button-Key:first-child>*{display:none}.DocSearch-Search-Icon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke-width='1.6' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' d='m14.386 14.386 4.088 4.088-4.088-4.088A7.533 7.533 0 1 1 3.733 3.733a7.533 7.533 0 0 1 10.653 10.653z'/%3E%3C/svg%3E")}.VPNavBarSearch{display:flex;align-items:center}@media (min-width: 768px){.VPNavBarSearch{flex-grow:1;padding-left:24px}}@media (min-width: 960px){.VPNavBarSearch{padding-left:32px}}.dark .DocSearch-Footer{border-top:1px solid var(--vp-c-divider)}.DocSearch-Form{border:1px solid var(--vp-c-brand-1);background-color:var(--vp-c-white)}.dark .DocSearch-Form{background-color:var(--vp-c-default-soft)}.DocSearch-Screen-Icon>svg{margin:auto}.VPNavBarSocialLinks[data-v-ef6192dc]{display:none}@media (min-width: 1280px){.VPNavBarSocialLinks[data-v-ef6192dc]{display:flex;align-items:center}}.title[data-v-9f43907a]{display:flex;align-items:center;border-bottom:1px solid transparent;width:100%;height:var(--vp-nav-height);font-size:16px;font-weight:600;color:var(--vp-c-text-1);transition:opacity .25s}@media (min-width: 960px){.title[data-v-9f43907a]{flex-shrink:0}.VPNavBarTitle.has-sidebar .title[data-v-9f43907a]{border-bottom-color:var(--vp-c-divider)}}[data-v-9f43907a] .logo{margin-right:8px;height:var(--vp-nav-logo-height)}.VPNavBarTranslations[data-v-acee064b]{display:none}@media (min-width: 1280px){.VPNavBarTranslations[data-v-acee064b]{display:flex;align-items:center}}.title[data-v-acee064b]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.VPNavBar[data-v-9fd4d1dd]{position:relative;height:var(--vp-nav-height);pointer-events:none;white-space:nowrap;transition:background-color .25s}.VPNavBar.screen-open[data-v-9fd4d1dd]{transition:none;background-color:var(--vp-nav-bg-color);border-bottom:1px solid var(--vp-c-divider)}.VPNavBar[data-v-9fd4d1dd]:not(.home){background-color:var(--vp-nav-bg-color)}@media (min-width: 960px){.VPNavBar[data-v-9fd4d1dd]:not(.home){background-color:transparent}.VPNavBar[data-v-9fd4d1dd]:not(.has-sidebar):not(.home.top){background-color:var(--vp-nav-bg-color)}}.wrapper[data-v-9fd4d1dd]{padding:0 8px 0 24px}@media (min-width: 768px){.wrapper[data-v-9fd4d1dd]{padding:0 32px}}@media (min-width: 960px){.VPNavBar.has-sidebar .wrapper[data-v-9fd4d1dd]{padding:0}}.container[data-v-9fd4d1dd]{display:flex;justify-content:space-between;margin:0 auto;max-width:calc(var(--vp-layout-max-width) - 64px);height:var(--vp-nav-height);pointer-events:none}.container>.title[data-v-9fd4d1dd],.container>.content[data-v-9fd4d1dd]{pointer-events:none}.container[data-v-9fd4d1dd] *{pointer-events:auto}@media (min-width: 960px){.VPNavBar.has-sidebar .container[data-v-9fd4d1dd]{max-width:100%}}.title[data-v-9fd4d1dd]{flex-shrink:0;height:calc(var(--vp-nav-height) - 1px);transition:background-color .5s}@media (min-width: 960px){.VPNavBar.has-sidebar .title[data-v-9fd4d1dd]{position:absolute;top:0;left:0;z-index:2;padding:0 32px;width:var(--vp-sidebar-width);height:var(--vp-nav-height);background-color:transparent}}@media (min-width: 1440px){.VPNavBar.has-sidebar .title[data-v-9fd4d1dd]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}.content[data-v-9fd4d1dd]{flex-grow:1}@media (min-width: 960px){.VPNavBar.has-sidebar .content[data-v-9fd4d1dd]{position:relative;z-index:1;padding-right:32px;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .content[data-v-9fd4d1dd]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2 + 32px);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.content-body[data-v-9fd4d1dd]{display:flex;justify-content:flex-end;align-items:center;height:var(--vp-nav-height);transition:background-color .5s}@media (min-width: 960px){.VPNavBar:not(.home.top) .content-body[data-v-9fd4d1dd]{position:relative;background-color:var(--vp-nav-bg-color)}.VPNavBar:not(.has-sidebar):not(.home.top) .content-body[data-v-9fd4d1dd]{background-color:transparent}}@media (max-width: 767px){.content-body[data-v-9fd4d1dd]{column-gap:.5rem}}.menu+.translations[data-v-9fd4d1dd]:before,.menu+.appearance[data-v-9fd4d1dd]:before,.menu+.social-links[data-v-9fd4d1dd]:before,.translations+.appearance[data-v-9fd4d1dd]:before,.appearance+.social-links[data-v-9fd4d1dd]:before{margin-right:8px;margin-left:8px;width:1px;height:24px;background-color:var(--vp-c-divider);content:""}.menu+.appearance[data-v-9fd4d1dd]:before,.translations+.appearance[data-v-9fd4d1dd]:before{margin-right:16px}.appearance+.social-links[data-v-9fd4d1dd]:before{margin-left:16px}.social-links[data-v-9fd4d1dd]{margin-right:-8px}.divider[data-v-9fd4d1dd]{width:100%;height:1px}@media (min-width: 960px){.VPNavBar.has-sidebar .divider[data-v-9fd4d1dd]{padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .divider[data-v-9fd4d1dd]{padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.divider-line[data-v-9fd4d1dd]{width:100%;height:1px;transition:background-color .5s}.VPNavBar:not(.home) .divider-line[data-v-9fd4d1dd]{background-color:var(--vp-c-gutter)}@media (min-width: 960px){.VPNavBar:not(.home.top) .divider-line[data-v-9fd4d1dd]{background-color:var(--vp-c-gutter)}.VPNavBar:not(.has-sidebar):not(.home.top) .divider[data-v-9fd4d1dd]{background-color:var(--vp-c-gutter)}}.VPNavScreenAppearance[data-v-a3e2920d]{display:flex;justify-content:space-between;align-items:center;border-radius:8px;padding:12px 14px 12px 16px;background-color:var(--vp-c-bg-soft)}.text[data-v-a3e2920d]{line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.VPNavScreenMenuLink[data-v-fa963d97]{display:block;border-bottom:1px solid var(--vp-c-divider);padding:12px 0 11px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:border-color .25s,color .25s}.VPNavScreenMenuLink[data-v-fa963d97]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupLink[data-v-e04f3e85]{display:block;margin-left:12px;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-1);transition:color .25s}.VPNavScreenMenuGroupLink[data-v-e04f3e85]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupSection[data-v-f60dbfa7]{display:block}.title[data-v-f60dbfa7]{line-height:32px;font-size:13px;font-weight:700;color:var(--vp-c-text-2);transition:color .25s}.VPNavScreenMenuGroup[data-v-d99bfeec]{border-bottom:1px solid var(--vp-c-divider);height:48px;overflow:hidden;transition:border-color .5s}.VPNavScreenMenuGroup .items[data-v-d99bfeec]{visibility:hidden}.VPNavScreenMenuGroup.open .items[data-v-d99bfeec]{visibility:visible}.VPNavScreenMenuGroup.open[data-v-d99bfeec]{padding-bottom:10px;height:auto}.VPNavScreenMenuGroup.open .button[data-v-d99bfeec]{padding-bottom:6px;color:var(--vp-c-brand-1)}.VPNavScreenMenuGroup.open .button-icon[data-v-d99bfeec]{transform:rotate(45deg)}.button[data-v-d99bfeec]{display:flex;justify-content:space-between;align-items:center;padding:12px 4px 11px 0;width:100%;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.button[data-v-d99bfeec]:hover{color:var(--vp-c-brand-1)}.button-icon[data-v-d99bfeec]{transition:transform .25s}.group[data-v-d99bfeec]:first-child{padding-top:0}.group+.group[data-v-d99bfeec],.group+.item[data-v-d99bfeec]{padding-top:4px}.VPNavScreenTranslations[data-v-516e4bc3]{height:24px;overflow:hidden}.VPNavScreenTranslations.open[data-v-516e4bc3]{height:auto}.title[data-v-516e4bc3]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-text-1)}.icon[data-v-516e4bc3]{font-size:16px}.icon.lang[data-v-516e4bc3]{margin-right:8px}.icon.chevron[data-v-516e4bc3]{margin-left:4px}.list[data-v-516e4bc3]{padding:4px 0 0 24px}.link[data-v-516e4bc3]{line-height:32px;font-size:13px;color:var(--vp-c-text-1)}.VPNavScreen[data-v-2dd6d0c7]{position:fixed;top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px));right:0;bottom:0;left:0;padding:0 32px;width:100%;background-color:var(--vp-nav-screen-bg-color);overflow-y:auto;transition:background-color .25s;pointer-events:auto}.VPNavScreen.fade-enter-active[data-v-2dd6d0c7],.VPNavScreen.fade-leave-active[data-v-2dd6d0c7]{transition:opacity .25s}.VPNavScreen.fade-enter-active .container[data-v-2dd6d0c7],.VPNavScreen.fade-leave-active .container[data-v-2dd6d0c7]{transition:transform .25s ease}.VPNavScreen.fade-enter-from[data-v-2dd6d0c7],.VPNavScreen.fade-leave-to[data-v-2dd6d0c7]{opacity:0}.VPNavScreen.fade-enter-from .container[data-v-2dd6d0c7],.VPNavScreen.fade-leave-to .container[data-v-2dd6d0c7]{transform:translateY(-8px)}@media (min-width: 768px){.VPNavScreen[data-v-2dd6d0c7]{display:none}}.container[data-v-2dd6d0c7]{margin:0 auto;padding:24px 0 96px;max-width:288px}.menu+.translations[data-v-2dd6d0c7],.menu+.appearance[data-v-2dd6d0c7],.translations+.appearance[data-v-2dd6d0c7]{margin-top:24px}.menu+.social-links[data-v-2dd6d0c7]{margin-top:16px}.appearance+.social-links[data-v-2dd6d0c7]{margin-top:16px}.VPNav[data-v-7ad780c2]{position:relative;top:var(--vp-layout-top-height, 0px);left:0;z-index:var(--vp-z-index-nav);width:100%;pointer-events:none;transition:background-color .5s}@media (min-width: 960px){.VPNav[data-v-7ad780c2]{position:fixed}}.VPSidebarItem.level-0[data-v-0009425e]{padding-bottom:24px}.VPSidebarItem.collapsed.level-0[data-v-0009425e]{padding-bottom:10px}.item[data-v-0009425e]{position:relative;display:flex;width:100%}.VPSidebarItem.collapsible>.item[data-v-0009425e]{cursor:pointer}.indicator[data-v-0009425e]{position:absolute;top:6px;bottom:6px;left:-17px;width:2px;border-radius:2px;transition:background-color .25s}.VPSidebarItem.level-2.is-active>.item>.indicator[data-v-0009425e],.VPSidebarItem.level-3.is-active>.item>.indicator[data-v-0009425e],.VPSidebarItem.level-4.is-active>.item>.indicator[data-v-0009425e],.VPSidebarItem.level-5.is-active>.item>.indicator[data-v-0009425e]{background-color:var(--vp-c-brand-1)}.link[data-v-0009425e]{display:flex;align-items:center;flex-grow:1}.text[data-v-0009425e]{flex-grow:1;padding:4px 0;line-height:24px;font-size:14px;transition:color .25s}.VPSidebarItem.level-0 .text[data-v-0009425e]{font-weight:700;color:var(--vp-c-text-1)}.VPSidebarItem.level-1 .text[data-v-0009425e],.VPSidebarItem.level-2 .text[data-v-0009425e],.VPSidebarItem.level-3 .text[data-v-0009425e],.VPSidebarItem.level-4 .text[data-v-0009425e],.VPSidebarItem.level-5 .text[data-v-0009425e]{font-weight:500;color:var(--vp-c-text-2)}.VPSidebarItem.level-0.is-link>.item>.link:hover .text[data-v-0009425e],.VPSidebarItem.level-1.is-link>.item>.link:hover .text[data-v-0009425e],.VPSidebarItem.level-2.is-link>.item>.link:hover .text[data-v-0009425e],.VPSidebarItem.level-3.is-link>.item>.link:hover .text[data-v-0009425e],.VPSidebarItem.level-4.is-link>.item>.link:hover .text[data-v-0009425e],.VPSidebarItem.level-5.is-link>.item>.link:hover .text[data-v-0009425e]{color:var(--vp-c-brand-1)}.VPSidebarItem.level-0.has-active>.item>.text[data-v-0009425e],.VPSidebarItem.level-1.has-active>.item>.text[data-v-0009425e],.VPSidebarItem.level-2.has-active>.item>.text[data-v-0009425e],.VPSidebarItem.level-3.has-active>.item>.text[data-v-0009425e],.VPSidebarItem.level-4.has-active>.item>.text[data-v-0009425e],.VPSidebarItem.level-5.has-active>.item>.text[data-v-0009425e],.VPSidebarItem.level-0.has-active>.item>.link>.text[data-v-0009425e],.VPSidebarItem.level-1.has-active>.item>.link>.text[data-v-0009425e],.VPSidebarItem.level-2.has-active>.item>.link>.text[data-v-0009425e],.VPSidebarItem.level-3.has-active>.item>.link>.text[data-v-0009425e],.VPSidebarItem.level-4.has-active>.item>.link>.text[data-v-0009425e],.VPSidebarItem.level-5.has-active>.item>.link>.text[data-v-0009425e]{color:var(--vp-c-text-1)}.VPSidebarItem.level-0.is-active>.item .link>.text[data-v-0009425e],.VPSidebarItem.level-1.is-active>.item .link>.text[data-v-0009425e],.VPSidebarItem.level-2.is-active>.item .link>.text[data-v-0009425e],.VPSidebarItem.level-3.is-active>.item .link>.text[data-v-0009425e],.VPSidebarItem.level-4.is-active>.item .link>.text[data-v-0009425e],.VPSidebarItem.level-5.is-active>.item .link>.text[data-v-0009425e]{color:var(--vp-c-brand-1)}.caret[data-v-0009425e]{display:flex;justify-content:center;align-items:center;margin-right:-7px;width:32px;height:32px;color:var(--vp-c-text-3);cursor:pointer;transition:color .25s;flex-shrink:0}.item:hover .caret[data-v-0009425e]{color:var(--vp-c-text-2)}.item:hover .caret[data-v-0009425e]:hover{color:var(--vp-c-text-1)}.caret-icon[data-v-0009425e]{font-size:18px;transform:rotate(90deg);transition:transform .25s}.VPSidebarItem.collapsed .caret-icon[data-v-0009425e]{transform:rotate(0)}.VPSidebarItem.level-1 .items[data-v-0009425e],.VPSidebarItem.level-2 .items[data-v-0009425e],.VPSidebarItem.level-3 .items[data-v-0009425e],.VPSidebarItem.level-4 .items[data-v-0009425e],.VPSidebarItem.level-5 .items[data-v-0009425e]{border-left:1px solid var(--vp-c-divider);padding-left:16px}.VPSidebarItem.collapsed .items[data-v-0009425e]{display:none}.no-transition[data-v-51288d80] .caret-icon{transition:none}.group+.group[data-v-51288d80]{border-top:1px solid var(--vp-c-divider);padding-top:10px}@media (min-width: 960px){.group[data-v-51288d80]{padding-top:10px;width:calc(var(--vp-sidebar-width) - 64px)}}.VPSidebar[data-v-42c4c606]{position:fixed;top:var(--vp-layout-top-height, 0px);bottom:0;left:0;z-index:var(--vp-z-index-sidebar);padding:32px 32px 96px;width:calc(100vw - 64px);max-width:320px;background-color:var(--vp-sidebar-bg-color);opacity:0;box-shadow:var(--vp-c-shadow-3);overflow-x:hidden;overflow-y:auto;transform:translate(-100%);transition:opacity .5s,transform .25s ease;overscroll-behavior:contain}.VPSidebar.open[data-v-42c4c606]{opacity:1;visibility:visible;transform:translate(0);transition:opacity .25s,transform .5s cubic-bezier(.19,1,.22,1)}.dark .VPSidebar[data-v-42c4c606]{box-shadow:var(--vp-shadow-1)}@media (min-width: 960px){.VPSidebar[data-v-42c4c606]{padding-top:var(--vp-nav-height);width:var(--vp-sidebar-width);max-width:100%;background-color:var(--vp-sidebar-bg-color);opacity:1;visibility:visible;box-shadow:none;transform:translate(0)}}@media (min-width: 1440px){.VPSidebar[data-v-42c4c606]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}@media (min-width: 960px){.curtain[data-v-42c4c606]{position:sticky;top:-64px;left:0;z-index:1;margin-top:calc(var(--vp-nav-height) * -1);margin-right:-32px;margin-left:-32px;height:var(--vp-nav-height);background-color:var(--vp-sidebar-bg-color)}}.nav[data-v-42c4c606]{outline:0}.VPSkipLink[data-v-fcbfc0e0]{top:8px;left:8px;padding:8px 16px;z-index:999;border-radius:8px;font-size:12px;font-weight:700;text-decoration:none;color:var(--vp-c-brand-1);box-shadow:var(--vp-shadow-3);background-color:var(--vp-c-bg)}.VPSkipLink[data-v-fcbfc0e0]:focus{height:auto;width:auto;clip:auto;clip-path:none}@media (min-width: 1280px){.VPSkipLink[data-v-fcbfc0e0]{top:14px;left:16px}}.Layout[data-v-d8b57b2d]{display:flex;flex-direction:column;min-height:100vh}:root{--vp-c-white: #ffffff;--vp-c-black: #000000;--vp-c-neutral: var(--vp-c-black);--vp-c-neutral-inverse: var(--vp-c-white)}.dark{--vp-c-neutral: var(--vp-c-white);--vp-c-neutral-inverse: var(--vp-c-black)}:root{--vp-c-gray-1: #dddde3;--vp-c-gray-2: #e4e4e9;--vp-c-gray-3: #ebebef;--vp-c-gray-soft: rgba(142, 150, 170, .14);--vp-c-indigo-1: #3451b2;--vp-c-indigo-2: #3a5ccc;--vp-c-indigo-3: #5672cd;--vp-c-indigo-soft: rgba(100, 108, 255, .14);--vp-c-purple-1: #6f42c1;--vp-c-purple-2: #7e4cc9;--vp-c-purple-3: #8e5cd9;--vp-c-purple-soft: rgba(159, 122, 234, .14);--vp-c-green-1: #18794e;--vp-c-green-2: #299764;--vp-c-green-3: #30a46c;--vp-c-green-soft: rgba(16, 185, 129, .14);--vp-c-yellow-1: #915930;--vp-c-yellow-2: #946300;--vp-c-yellow-3: #9f6a00;--vp-c-yellow-soft: rgba(234, 179, 8, .14);--vp-c-red-1: #b8272c;--vp-c-red-2: #d5393e;--vp-c-red-3: #e0575b;--vp-c-red-soft: rgba(244, 63, 94, .14);--vp-c-sponsor: #db2777}.dark{--vp-c-gray-1: #515c67;--vp-c-gray-2: #414853;--vp-c-gray-3: #32363f;--vp-c-gray-soft: rgba(101, 117, 133, .16);--vp-c-indigo-1: #a8b1ff;--vp-c-indigo-2: #5c73e7;--vp-c-indigo-3: #3e63dd;--vp-c-indigo-soft: rgba(100, 108, 255, .16);--vp-c-purple-1: #c8abfa;--vp-c-purple-2: #a879e6;--vp-c-purple-3: #8e5cd9;--vp-c-purple-soft: rgba(159, 122, 234, .16);--vp-c-green-1: #3dd68c;--vp-c-green-2: #30a46c;--vp-c-green-3: #298459;--vp-c-green-soft: rgba(16, 185, 129, .16);--vp-c-yellow-1: #f9b44e;--vp-c-yellow-2: #da8b17;--vp-c-yellow-3: #a46a0a;--vp-c-yellow-soft: rgba(234, 179, 8, .16);--vp-c-red-1: #f66f81;--vp-c-red-2: #f14158;--vp-c-red-3: #b62a3c;--vp-c-red-soft: rgba(244, 63, 94, .16)}:root{--vp-c-bg: #ffffff;--vp-c-bg-alt: #f6f6f7;--vp-c-bg-elv: #ffffff;--vp-c-bg-soft: #f6f6f7}.dark{--vp-c-bg: #1b1b1f;--vp-c-bg-alt: #161618;--vp-c-bg-elv: #202127;--vp-c-bg-soft: #202127}:root{--vp-c-border: #c2c2c4;--vp-c-divider: #e2e2e3;--vp-c-gutter: #e2e2e3}.dark{--vp-c-border: #3c3f44;--vp-c-divider: #2e2e32;--vp-c-gutter: #000000}:root{--vp-c-text-1: #3c3c43;--vp-c-text-2: #67676c;--vp-c-text-3: #929295}.dark{--vp-c-text-1: #dfdfd6;--vp-c-text-2: #98989f;--vp-c-text-3: #6a6a71}:root{--vp-c-default-1: var(--vp-c-gray-1);--vp-c-default-2: var(--vp-c-gray-2);--vp-c-default-3: var(--vp-c-gray-3);--vp-c-default-soft: var(--vp-c-gray-soft);--vp-c-brand-1: var(--vp-c-indigo-1);--vp-c-brand-2: var(--vp-c-indigo-2);--vp-c-brand-3: var(--vp-c-indigo-3);--vp-c-brand-soft: var(--vp-c-indigo-soft);--vp-c-brand: var(--vp-c-brand-1);--vp-c-tip-1: var(--vp-c-brand-1);--vp-c-tip-2: var(--vp-c-brand-2);--vp-c-tip-3: var(--vp-c-brand-3);--vp-c-tip-soft: var(--vp-c-brand-soft);--vp-c-note-1: var(--vp-c-brand-1);--vp-c-note-2: var(--vp-c-brand-2);--vp-c-note-3: var(--vp-c-brand-3);--vp-c-note-soft: var(--vp-c-brand-soft);--vp-c-success-1: var(--vp-c-green-1);--vp-c-success-2: var(--vp-c-green-2);--vp-c-success-3: var(--vp-c-green-3);--vp-c-success-soft: var(--vp-c-green-soft);--vp-c-important-1: var(--vp-c-purple-1);--vp-c-important-2: var(--vp-c-purple-2);--vp-c-important-3: var(--vp-c-purple-3);--vp-c-important-soft: var(--vp-c-purple-soft);--vp-c-warning-1: var(--vp-c-yellow-1);--vp-c-warning-2: var(--vp-c-yellow-2);--vp-c-warning-3: var(--vp-c-yellow-3);--vp-c-warning-soft: var(--vp-c-yellow-soft);--vp-c-danger-1: var(--vp-c-red-1);--vp-c-danger-2: var(--vp-c-red-2);--vp-c-danger-3: var(--vp-c-red-3);--vp-c-danger-soft: var(--vp-c-red-soft);--vp-c-caution-1: var(--vp-c-red-1);--vp-c-caution-2: var(--vp-c-red-2);--vp-c-caution-3: var(--vp-c-red-3);--vp-c-caution-soft: var(--vp-c-red-soft)}:root{--vp-font-family-base: "Inter", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--vp-font-family-mono: ui-monospace, "Menlo", "Monaco", "Consolas", "Liberation Mono", "Courier New", monospace;font-optical-sizing:auto}:root:where(:lang(zh)){--vp-font-family-base: "Punctuation SC", "Inter", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"}:root{--vp-shadow-1: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06);--vp-shadow-2: 0 3px 12px rgba(0, 0, 0, .07), 0 1px 4px rgba(0, 0, 0, .07);--vp-shadow-3: 0 12px 32px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .08);--vp-shadow-4: 0 14px 44px rgba(0, 0, 0, .12), 0 3px 9px rgba(0, 0, 0, .12);--vp-shadow-5: 0 18px 56px rgba(0, 0, 0, .16), 0 4px 12px rgba(0, 0, 0, .16)}:root{--vp-z-index-footer: 10;--vp-z-index-local-nav: 20;--vp-z-index-nav: 30;--vp-z-index-layout-top: 40;--vp-z-index-backdrop: 50;--vp-z-index-sidebar: 60}@media (min-width: 960px){:root{--vp-z-index-sidebar: 25}}:root{--vp-layout-max-width: 1440px}:root{--vp-header-anchor-symbol: "#"}:root{--vp-code-line-height: 1.7;--vp-code-font-size: .875em;--vp-code-color: var(--vp-c-brand-1);--vp-code-link-color: var(--vp-c-brand-1);--vp-code-link-hover-color: var(--vp-c-brand-2);--vp-code-bg: var(--vp-c-default-soft);--vp-code-block-color: var(--vp-c-text-2);--vp-code-block-bg: var(--vp-c-bg-alt);--vp-code-block-divider-color: var(--vp-c-gutter);--vp-code-lang-color: var(--vp-c-text-3);--vp-code-line-highlight-color: var(--vp-c-default-soft);--vp-code-line-number-color: var(--vp-c-text-3);--vp-code-line-diff-add-color: var(--vp-c-success-soft);--vp-code-line-diff-add-symbol-color: var(--vp-c-success-1);--vp-code-line-diff-remove-color: var(--vp-c-danger-soft);--vp-code-line-diff-remove-symbol-color: var(--vp-c-danger-1);--vp-code-line-warning-color: var(--vp-c-warning-soft);--vp-code-line-error-color: var(--vp-c-danger-soft);--vp-code-copy-code-border-color: var(--vp-c-divider);--vp-code-copy-code-bg: var(--vp-c-bg-soft);--vp-code-copy-code-hover-border-color: var(--vp-c-divider);--vp-code-copy-code-hover-bg: var(--vp-c-bg);--vp-code-copy-code-active-text: var(--vp-c-text-2);--vp-code-copy-copied-text-content: "Copied";--vp-code-tab-divider: var(--vp-code-block-divider-color);--vp-code-tab-text-color: var(--vp-c-text-2);--vp-code-tab-bg: var(--vp-code-block-bg);--vp-code-tab-hover-text-color: var(--vp-c-text-1);--vp-code-tab-active-text-color: var(--vp-c-text-1);--vp-code-tab-active-bar-color: var(--vp-c-brand-1)}:lang(es),:lang(pt){--vp-code-copy-copied-text-content: "Copiado"}:lang(fa){--vp-code-copy-copied-text-content: "کپی شد"}:lang(ko){--vp-code-copy-copied-text-content: "복사됨"}:lang(ru){--vp-code-copy-copied-text-content: "Скопировано"}:lang(zh){--vp-code-copy-copied-text-content: "已复制"}:root{--vp-button-brand-border: transparent;--vp-button-brand-text: var(--vp-c-white);--vp-button-brand-bg: var(--vp-c-brand-3);--vp-button-brand-hover-border: transparent;--vp-button-brand-hover-text: var(--vp-c-white);--vp-button-brand-hover-bg: var(--vp-c-brand-2);--vp-button-brand-active-border: transparent;--vp-button-brand-active-text: var(--vp-c-white);--vp-button-brand-active-bg: var(--vp-c-brand-1);--vp-button-alt-border: transparent;--vp-button-alt-text: var(--vp-c-text-1);--vp-button-alt-bg: var(--vp-c-default-3);--vp-button-alt-hover-border: transparent;--vp-button-alt-hover-text: var(--vp-c-text-1);--vp-button-alt-hover-bg: var(--vp-c-default-2);--vp-button-alt-active-border: transparent;--vp-button-alt-active-text: var(--vp-c-text-1);--vp-button-alt-active-bg: var(--vp-c-default-1);--vp-button-sponsor-border: var(--vp-c-text-2);--vp-button-sponsor-text: var(--vp-c-text-2);--vp-button-sponsor-bg: transparent;--vp-button-sponsor-hover-border: var(--vp-c-sponsor);--vp-button-sponsor-hover-text: var(--vp-c-sponsor);--vp-button-sponsor-hover-bg: transparent;--vp-button-sponsor-active-border: var(--vp-c-sponsor);--vp-button-sponsor-active-text: var(--vp-c-sponsor);--vp-button-sponsor-active-bg: transparent}:root{--vp-custom-block-font-size: 14px;--vp-custom-block-code-font-size: 13px;--vp-custom-block-info-border: transparent;--vp-custom-block-info-text: var(--vp-c-text-1);--vp-custom-block-info-bg: var(--vp-c-default-soft);--vp-custom-block-info-code-bg: var(--vp-c-default-soft);--vp-custom-block-note-border: transparent;--vp-custom-block-note-text: var(--vp-c-text-1);--vp-custom-block-note-bg: var(--vp-c-default-soft);--vp-custom-block-note-code-bg: var(--vp-c-default-soft);--vp-custom-block-tip-border: transparent;--vp-custom-block-tip-text: var(--vp-c-text-1);--vp-custom-block-tip-bg: var(--vp-c-tip-soft);--vp-custom-block-tip-code-bg: var(--vp-c-tip-soft);--vp-custom-block-important-border: transparent;--vp-custom-block-important-text: var(--vp-c-text-1);--vp-custom-block-important-bg: var(--vp-c-important-soft);--vp-custom-block-important-code-bg: var(--vp-c-important-soft);--vp-custom-block-warning-border: transparent;--vp-custom-block-warning-text: var(--vp-c-text-1);--vp-custom-block-warning-bg: var(--vp-c-warning-soft);--vp-custom-block-warning-code-bg: var(--vp-c-warning-soft);--vp-custom-block-danger-border: transparent;--vp-custom-block-danger-text: var(--vp-c-text-1);--vp-custom-block-danger-bg: var(--vp-c-danger-soft);--vp-custom-block-danger-code-bg: var(--vp-c-danger-soft);--vp-custom-block-caution-border: transparent;--vp-custom-block-caution-text: var(--vp-c-text-1);--vp-custom-block-caution-bg: var(--vp-c-caution-soft);--vp-custom-block-caution-code-bg: var(--vp-c-caution-soft);--vp-custom-block-details-border: var(--vp-custom-block-info-border);--vp-custom-block-details-text: var(--vp-custom-block-info-text);--vp-custom-block-details-bg: var(--vp-custom-block-info-bg);--vp-custom-block-details-code-bg: var(--vp-custom-block-info-code-bg)}:root{--vp-input-border-color: var(--vp-c-border);--vp-input-bg-color: var(--vp-c-bg-alt);--vp-input-switch-bg-color: var(--vp-c-default-soft)}:root{--vp-nav-height: 64px;--vp-nav-bg-color: var(--vp-c-bg);--vp-nav-screen-bg-color: var(--vp-c-bg);--vp-nav-logo-height: 24px}.hide-nav{--vp-nav-height: 0px}.hide-nav .VPSidebar{--vp-nav-height: 22px}:root{--vp-local-nav-bg-color: var(--vp-c-bg)}:root{--vp-sidebar-width: 272px;--vp-sidebar-bg-color: var(--vp-c-bg-alt)}:root{--vp-backdrop-bg-color: rgba(0, 0, 0, .6)}:root{--vp-home-hero-name-color: var(--vp-c-brand-1);--vp-home-hero-name-background: transparent;--vp-home-hero-image-background-image: none;--vp-home-hero-image-filter: none}:root{--vp-badge-info-border: transparent;--vp-badge-info-text: var(--vp-c-text-2);--vp-badge-info-bg: var(--vp-c-default-soft);--vp-badge-tip-border: transparent;--vp-badge-tip-text: var(--vp-c-tip-1);--vp-badge-tip-bg: var(--vp-c-tip-soft);--vp-badge-warning-border: transparent;--vp-badge-warning-text: var(--vp-c-warning-1);--vp-badge-warning-bg: var(--vp-c-warning-soft);--vp-badge-danger-border: transparent;--vp-badge-danger-text: var(--vp-c-danger-1);--vp-badge-danger-bg: var(--vp-c-danger-soft)}:root{--vp-carbon-ads-text-color: var(--vp-c-text-1);--vp-carbon-ads-poweredby-color: var(--vp-c-text-2);--vp-carbon-ads-bg-color: var(--vp-c-bg-soft);--vp-carbon-ads-hover-text-color: var(--vp-c-brand-1);--vp-carbon-ads-hover-poweredby-color: var(--vp-c-text-1)}:root{--vp-local-search-bg: var(--vp-c-bg);--vp-local-search-result-bg: var(--vp-c-bg);--vp-local-search-result-border: var(--vp-c-divider);--vp-local-search-result-selected-bg: var(--vp-c-bg);--vp-local-search-result-selected-border: var(--vp-c-brand-1);--vp-local-search-highlight-bg: var(--vp-c-brand-1);--vp-local-search-highlight-text: var(--vp-c-neutral-inverse)}@media (prefers-reduced-motion: reduce){*,:before,:after{animation-delay:-1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important;background-attachment:initial!important;scroll-behavior:auto!important;transition-duration:0s!important;transition-delay:0s!important}}*,:before,:after{box-sizing:border-box}html{line-height:1.4;font-size:16px;-webkit-text-size-adjust:100%}html.dark{color-scheme:dark}body{margin:0;width:100%;min-width:320px;min-height:100vh;line-height:24px;font-family:var(--vp-font-family-base);font-size:16px;font-weight:400;color:var(--vp-c-text-1);background-color:var(--vp-c-bg);font-synthesis:style;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}main{display:block}h1,h2,h3,h4,h5,h6{margin:0;line-height:24px;font-size:16px;font-weight:400}p{margin:0}strong,b{font-weight:600}a,area,button,[role=button],input,label,select,summary,textarea{touch-action:manipulation}a{color:inherit;text-decoration:inherit}ol,ul{list-style:none;margin:0;padding:0}blockquote{margin:0}pre,code,kbd,samp{font-family:var(--vp-font-family-mono)}img,svg,video,canvas,audio,iframe,embed,object{display:block}figure{margin:0}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{border:0;padding:0;line-height:inherit;color:inherit}button{padding:0;font-family:inherit;background-color:transparent;background-image:none}button:enabled,[role=button]:enabled{cursor:pointer}button:focus,button:focus-visible{outline:1px dotted;outline:4px auto -webkit-focus-ring-color}button:focus:not(:focus-visible){outline:none!important}input:focus,textarea:focus,select:focus{outline:none}table{border-collapse:collapse}input{background-color:transparent}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:var(--vp-c-text-3)}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:var(--vp-c-text-3)}input::placeholder,textarea::placeholder{color:var(--vp-c-text-3)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}textarea{resize:vertical}select{-webkit-appearance:none}fieldset{margin:0;padding:0}h1,h2,h3,h4,h5,h6,li,p{overflow-wrap:break-word}vite-error-overlay{z-index:9999}mjx-container{overflow-x:auto}mjx-container>svg{display:inline-block;margin:auto}[class^=vpi-],[class*=" vpi-"],.vp-icon{width:1em;height:1em}[class^=vpi-].bg,[class*=" vpi-"].bg,.vp-icon.bg{background-size:100% 100%;background-color:transparent}[class^=vpi-]:not(.bg),[class*=" vpi-"]:not(.bg),.vp-icon:not(.bg){-webkit-mask:var(--icon) no-repeat;mask:var(--icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit}.vpi-align-left{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M21 6H3M15 12H3M17 18H3'/%3E%3C/svg%3E")}.vpi-arrow-right,.vpi-arrow-down,.vpi-arrow-left,.vpi-arrow-up{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M12 5l7 7-7 7'/%3E%3C/svg%3E")}.vpi-chevron-right,.vpi-chevron-down,.vpi-chevron-left,.vpi-chevron-up{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E")}.vpi-chevron-down,.vpi-arrow-down{transform:rotate(90deg)}.vpi-chevron-left,.vpi-arrow-left{transform:rotate(180deg)}.vpi-chevron-up,.vpi-arrow-up{transform:rotate(-90deg)}.vpi-square-pen{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7'/%3E%3Cpath d='M18.375 2.625a2.121 2.121 0 1 1 3 3L12 15l-4 1 1-4Z'/%3E%3C/svg%3E")}.vpi-plus{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M12 5v14'/%3E%3C/svg%3E")}.vpi-sun{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41'/%3E%3C/svg%3E")}.vpi-moon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z'/%3E%3C/svg%3E")}.vpi-more-horizontal{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='1'/%3E%3Ccircle cx='19' cy='12' r='1'/%3E%3Ccircle cx='5' cy='12' r='1'/%3E%3C/svg%3E")}.vpi-languages{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m5 8 6 6M4 14l6-6 2-3M2 5h12M7 2h1M22 22l-5-10-5 10M14 18h6'/%3E%3C/svg%3E")}.vpi-heart{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z'/%3E%3C/svg%3E")}.vpi-search{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E")}.vpi-layout-list{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='7' height='7' x='3' y='3' rx='1'/%3E%3Crect width='7' height='7' x='3' y='14' rx='1'/%3E%3Cpath d='M14 4h7M14 9h7M14 15h7M14 20h7'/%3E%3C/svg%3E")}.vpi-delete{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M20 5H9l-7 7 7 7h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2ZM18 9l-6 6M12 9l6 6'/%3E%3C/svg%3E")}.vpi-corner-down-left{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m9 10-5 5 5 5'/%3E%3Cpath d='M20 4v7a4 4 0 0 1-4 4H4'/%3E%3C/svg%3E")}:root{--vp-icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3C/svg%3E");--vp-icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3Cpath d='m9 14 2 2 4-4'/%3E%3C/svg%3E")}.visually-hidden{position:absolute;width:1px;height:1px;white-space:nowrap;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden}.custom-block{border:1px solid transparent;border-radius:8px;padding:16px 16px 8px;line-height:24px;font-size:var(--vp-custom-block-font-size);color:var(--vp-c-text-2)}.custom-block.info{border-color:var(--vp-custom-block-info-border);color:var(--vp-custom-block-info-text);background-color:var(--vp-custom-block-info-bg)}.custom-block.info a,.custom-block.info code{color:var(--vp-c-brand-1)}.custom-block.info a:hover,.custom-block.info a:hover>code{color:var(--vp-c-brand-2)}.custom-block.info code{background-color:var(--vp-custom-block-info-code-bg)}.custom-block.note{border-color:var(--vp-custom-block-note-border);color:var(--vp-custom-block-note-text);background-color:var(--vp-custom-block-note-bg)}.custom-block.note a,.custom-block.note code{color:var(--vp-c-brand-1)}.custom-block.note a:hover,.custom-block.note a:hover>code{color:var(--vp-c-brand-2)}.custom-block.note code{background-color:var(--vp-custom-block-note-code-bg)}.custom-block.tip{border-color:var(--vp-custom-block-tip-border);color:var(--vp-custom-block-tip-text);background-color:var(--vp-custom-block-tip-bg)}.custom-block.tip a,.custom-block.tip code{color:var(--vp-c-tip-1)}.custom-block.tip a:hover,.custom-block.tip a:hover>code{color:var(--vp-c-tip-2)}.custom-block.tip code{background-color:var(--vp-custom-block-tip-code-bg)}.custom-block.important{border-color:var(--vp-custom-block-important-border);color:var(--vp-custom-block-important-text);background-color:var(--vp-custom-block-important-bg)}.custom-block.important a,.custom-block.important code{color:var(--vp-c-important-1)}.custom-block.important a:hover,.custom-block.important a:hover>code{color:var(--vp-c-important-2)}.custom-block.important code{background-color:var(--vp-custom-block-important-code-bg)}.custom-block.warning{border-color:var(--vp-custom-block-warning-border);color:var(--vp-custom-block-warning-text);background-color:var(--vp-custom-block-warning-bg)}.custom-block.warning a,.custom-block.warning code{color:var(--vp-c-warning-1)}.custom-block.warning a:hover,.custom-block.warning a:hover>code{color:var(--vp-c-warning-2)}.custom-block.warning code{background-color:var(--vp-custom-block-warning-code-bg)}.custom-block.danger{border-color:var(--vp-custom-block-danger-border);color:var(--vp-custom-block-danger-text);background-color:var(--vp-custom-block-danger-bg)}.custom-block.danger a,.custom-block.danger code{color:var(--vp-c-danger-1)}.custom-block.danger a:hover,.custom-block.danger a:hover>code{color:var(--vp-c-danger-2)}.custom-block.danger code{background-color:var(--vp-custom-block-danger-code-bg)}.custom-block.caution{border-color:var(--vp-custom-block-caution-border);color:var(--vp-custom-block-caution-text);background-color:var(--vp-custom-block-caution-bg)}.custom-block.caution a,.custom-block.caution code{color:var(--vp-c-caution-1)}.custom-block.caution a:hover,.custom-block.caution a:hover>code{color:var(--vp-c-caution-2)}.custom-block.caution code{background-color:var(--vp-custom-block-caution-code-bg)}.custom-block.details{border-color:var(--vp-custom-block-details-border);color:var(--vp-custom-block-details-text);background-color:var(--vp-custom-block-details-bg)}.custom-block.details a{color:var(--vp-c-brand-1)}.custom-block.details a:hover,.custom-block.details a:hover>code{color:var(--vp-c-brand-2)}.custom-block.details code{background-color:var(--vp-custom-block-details-code-bg)}.custom-block-title{font-weight:600}.custom-block p+p{margin:8px 0}.custom-block.details summary{margin:0 0 8px;font-weight:700;cursor:pointer;-webkit-user-select:none;user-select:none}.custom-block.details summary+p{margin:8px 0}.custom-block a{color:inherit;font-weight:600;text-decoration:underline;text-underline-offset:2px;transition:opacity .25s}.custom-block a:hover{opacity:.75}.custom-block code{font-size:var(--vp-custom-block-code-font-size)}.custom-block.custom-block th,.custom-block.custom-block blockquote>p{font-size:var(--vp-custom-block-font-size);color:inherit}.dark .vp-code span{color:var(--shiki-dark, inherit)}html:not(.dark) .vp-code span{color:var(--shiki-light, inherit)}.vp-code-group{margin-top:16px}.vp-code-group .tabs{position:relative;display:flex;margin-right:-24px;margin-left:-24px;padding:0 12px;background-color:var(--vp-code-tab-bg);overflow-x:auto;overflow-y:hidden;box-shadow:inset 0 -1px var(--vp-code-tab-divider)}@media (min-width: 640px){.vp-code-group .tabs{margin-right:0;margin-left:0;border-radius:8px 8px 0 0}}.vp-code-group .tabs input{position:fixed;opacity:0;pointer-events:none}.vp-code-group .tabs label{position:relative;display:inline-block;border-bottom:1px solid transparent;padding:0 12px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-code-tab-text-color);white-space:nowrap;cursor:pointer;transition:color .25s}.vp-code-group .tabs label:after{position:absolute;right:8px;bottom:-1px;left:8px;z-index:1;height:2px;border-radius:2px;content:"";background-color:transparent;transition:background-color .25s}.vp-code-group label:hover{color:var(--vp-code-tab-hover-text-color)}.vp-code-group input:checked+label{color:var(--vp-code-tab-active-text-color)}.vp-code-group input:checked+label:after{background-color:var(--vp-code-tab-active-bar-color)}.vp-code-group div[class*=language-],.vp-block{display:none;margin-top:0!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.vp-code-group div[class*=language-].active,.vp-block.active{display:block}.vp-block{padding:20px 24px}.vp-doc h1,.vp-doc h2,.vp-doc h3,.vp-doc h4,.vp-doc h5,.vp-doc h6{position:relative;font-weight:600;outline:none}.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:28px}.vp-doc h2{margin:48px 0 16px;border-top:1px solid var(--vp-c-divider);padding-top:24px;letter-spacing:-.02em;line-height:32px;font-size:24px}.vp-doc h3{margin:32px 0 0;letter-spacing:-.01em;line-height:28px;font-size:20px}.vp-doc h4{margin:24px 0 0;letter-spacing:-.01em;line-height:24px;font-size:18px}.vp-doc .header-anchor{position:absolute;top:0;left:0;margin-left:-.87em;font-weight:500;-webkit-user-select:none;user-select:none;opacity:0;text-decoration:none;transition:color .25s,opacity .25s}.vp-doc .header-anchor:before{content:var(--vp-header-anchor-symbol)}.vp-doc h1:hover .header-anchor,.vp-doc h1 .header-anchor:focus,.vp-doc h2:hover .header-anchor,.vp-doc h2 .header-anchor:focus,.vp-doc h3:hover .header-anchor,.vp-doc h3 .header-anchor:focus,.vp-doc h4:hover .header-anchor,.vp-doc h4 .header-anchor:focus,.vp-doc h5:hover .header-anchor,.vp-doc h5 .header-anchor:focus,.vp-doc h6:hover .header-anchor,.vp-doc h6 .header-anchor:focus{opacity:1}@media (min-width: 768px){.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:32px}}.vp-doc h2 .header-anchor{top:24px}.vp-doc p,.vp-doc summary{margin:16px 0}.vp-doc p{line-height:28px}.vp-doc blockquote{margin:16px 0;border-left:2px solid var(--vp-c-divider);padding-left:16px;transition:border-color .5s;color:var(--vp-c-text-2)}.vp-doc blockquote>p{margin:0;font-size:16px;transition:color .5s}.vp-doc a{font-weight:500;color:var(--vp-c-brand-1);text-decoration:underline;text-underline-offset:2px;transition:color .25s,opacity .25s}.vp-doc a:hover{color:var(--vp-c-brand-2)}.vp-doc strong{font-weight:600}.vp-doc ul,.vp-doc ol{padding-left:1.25rem;margin:16px 0}.vp-doc ul{list-style:disc}.vp-doc ol{list-style:decimal}.vp-doc li+li{margin-top:8px}.vp-doc li>ol,.vp-doc li>ul{margin:8px 0 0}.vp-doc table{display:block;border-collapse:collapse;margin:20px 0;overflow-x:auto}.vp-doc tr{background-color:var(--vp-c-bg);border-top:1px solid var(--vp-c-divider);transition:background-color .5s}.vp-doc tr:nth-child(2n){background-color:var(--vp-c-bg-soft)}.vp-doc th,.vp-doc td{border:1px solid var(--vp-c-divider);padding:8px 16px}.vp-doc th{text-align:left;font-size:14px;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-doc td{font-size:14px}.vp-doc hr{margin:16px 0;border:none;border-top:1px solid var(--vp-c-divider)}.vp-doc .custom-block{margin:16px 0}.vp-doc .custom-block p{margin:8px 0;line-height:24px}.vp-doc .custom-block p:first-child{margin:0}.vp-doc .custom-block div[class*=language-]{margin:8px 0;border-radius:8px}.vp-doc .custom-block div[class*=language-] code{font-weight:400;background-color:transparent}.vp-doc .custom-block .vp-code-group .tabs{margin:0;border-radius:8px 8px 0 0}.vp-doc :not(pre,h1,h2,h3,h4,h5,h6)>code{font-size:var(--vp-code-font-size);color:var(--vp-code-color)}.vp-doc :not(pre)>code{border-radius:4px;padding:3px 6px;background-color:var(--vp-code-bg);transition:color .25s,background-color .5s}.vp-doc a>code{color:var(--vp-code-link-color)}.vp-doc a:hover>code{color:var(--vp-code-link-hover-color)}.vp-doc h1>code,.vp-doc h2>code,.vp-doc h3>code,.vp-doc h4>code{font-size:.9em}.vp-doc div[class*=language-],.vp-block{position:relative;margin:16px -24px;background-color:var(--vp-code-block-bg);overflow-x:auto;transition:background-color .5s}@media (min-width: 640px){.vp-doc div[class*=language-],.vp-block{border-radius:8px;margin:16px 0}}@media (max-width: 639px){.vp-doc li div[class*=language-]{border-radius:8px 0 0 8px}}.vp-doc div[class*=language-]+div[class*=language-],.vp-doc div[class$=-api]+div[class*=language-],.vp-doc div[class*=language-]+div[class$=-api]>div[class*=language-]{margin-top:-8px}.vp-doc [class*=language-] pre,.vp-doc [class*=language-] code{direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}.vp-doc [class*=language-] pre{position:relative;z-index:1;margin:0;padding:20px 0;background:transparent;overflow-x:auto}.vp-doc [class*=language-] code{display:block;padding:0 24px;width:fit-content;min-width:100%;line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-block-color);transition:color .5s}.vp-doc [class*=language-] code .highlighted{background-color:var(--vp-code-line-highlight-color);transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .highlighted.error{background-color:var(--vp-code-line-error-color)}.vp-doc [class*=language-] code .highlighted.warning{background-color:var(--vp-code-line-warning-color)}.vp-doc [class*=language-] code .diff{transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .diff:before{position:absolute;left:10px}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){filter:blur(.095rem);opacity:.4;transition:filter .35s,opacity .35s}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){opacity:.7;transition:filter .35s,opacity .35s}.vp-doc [class*=language-]:hover .has-focused-lines .line:not(.has-focus){filter:blur(0);opacity:1}.vp-doc [class*=language-] code .diff.remove{background-color:var(--vp-code-line-diff-remove-color);opacity:.7}.vp-doc [class*=language-] code .diff.remove:before{content:"-";color:var(--vp-code-line-diff-remove-symbol-color)}.vp-doc [class*=language-] code .diff.add{background-color:var(--vp-code-line-diff-add-color)}.vp-doc [class*=language-] code .diff.add:before{content:"+";color:var(--vp-code-line-diff-add-symbol-color)}.vp-doc div[class*=language-].line-numbers-mode{padding-left:32px}.vp-doc .line-numbers-wrapper{position:absolute;top:0;bottom:0;left:0;z-index:3;border-right:1px solid var(--vp-code-block-divider-color);padding-top:20px;width:32px;text-align:center;font-family:var(--vp-font-family-mono);line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-line-number-color);transition:border-color .5s,color .5s}.vp-doc [class*=language-]>button.copy{direction:ltr;position:absolute;top:12px;right:12px;z-index:3;border:1px solid var(--vp-code-copy-code-border-color);border-radius:4px;width:40px;height:40px;background-color:var(--vp-code-copy-code-bg);opacity:0;cursor:pointer;background-image:var(--vp-icon-copy);background-position:50%;background-size:20px;background-repeat:no-repeat;transition:border-color .25s,background-color .25s,opacity .25s}.vp-doc [class*=language-]:hover>button.copy,.vp-doc [class*=language-]>button.copy:focus{opacity:1}.vp-doc [class*=language-]>button.copy:hover,.vp-doc [class*=language-]>button.copy.copied{border-color:var(--vp-code-copy-code-hover-border-color);background-color:var(--vp-code-copy-code-hover-bg)}.vp-doc [class*=language-]>button.copy.copied,.vp-doc [class*=language-]>button.copy:hover.copied{border-radius:0 4px 4px 0;background-color:var(--vp-code-copy-code-hover-bg);background-image:var(--vp-icon-copied)}.vp-doc [class*=language-]>button.copy.copied:before,.vp-doc [class*=language-]>button.copy:hover.copied:before{position:relative;top:-1px;transform:translate(calc(-100% - 1px));display:flex;justify-content:center;align-items:center;border:1px solid var(--vp-code-copy-code-hover-border-color);border-right:0;border-radius:4px 0 0 4px;padding:0 10px;width:fit-content;height:40px;text-align:center;font-size:12px;font-weight:500;color:var(--vp-code-copy-code-active-text);background-color:var(--vp-code-copy-code-hover-bg);white-space:nowrap;content:var(--vp-code-copy-copied-text-content)}.vp-doc [class*=language-]>span.lang{position:absolute;top:2px;right:8px;z-index:2;font-size:12px;font-weight:500;-webkit-user-select:none;user-select:none;color:var(--vp-code-lang-color);transition:color .4s,opacity .4s}.vp-doc [class*=language-]:hover>button.copy+span.lang,.vp-doc [class*=language-]>button.copy:focus+span.lang{opacity:0}.vp-doc .VPTeamMembers{margin-top:24px}.vp-doc .VPTeamMembers.small.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}.vp-doc .VPTeamMembers.small.count-2 .container,.vp-doc .VPTeamMembers.small.count-3 .container{max-width:100%!important}.vp-doc .VPTeamMembers.medium.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}:is(.vp-external-link-icon,.vp-doc a[href*="://"],.vp-doc a[target=_blank]):not(:is(.no-icon,svg a,:has(img,svg))):after{display:inline-block;margin-top:-1px;margin-left:4px;width:11px;height:11px;background:currentColor;color:var(--vp-c-text-3);flex-shrink:0;--icon: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' %3E%3Cpath d='M0 0h24v24H0V0z' fill='none' /%3E%3Cpath d='M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z' /%3E%3C/svg%3E");-webkit-mask-image:var(--icon);mask-image:var(--icon)}.vp-external-link-icon:after{content:""}.external-link-icon-enabled :is(.vp-doc a[href*="://"],.vp-doc a[target=_blank]):not(:is(.no-icon,svg a,:has(img,svg))):after{content:"";color:currentColor}.vp-sponsor{border-radius:16px;overflow:hidden}.vp-sponsor.aside{border-radius:12px}.vp-sponsor-section+.vp-sponsor-section{margin-top:4px}.vp-sponsor-tier{margin:0 0 4px!important;text-align:center;letter-spacing:1px!important;line-height:24px;width:100%;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-sponsor.normal .vp-sponsor-tier{padding:13px 0 11px;font-size:14px}.vp-sponsor.aside .vp-sponsor-tier{padding:9px 0 7px;font-size:12px}.vp-sponsor-grid+.vp-sponsor-tier{margin-top:4px}.vp-sponsor-grid{display:flex;flex-wrap:wrap;gap:4px}.vp-sponsor-grid.xmini .vp-sponsor-grid-link{height:64px}.vp-sponsor-grid.xmini .vp-sponsor-grid-image{max-width:64px;max-height:22px}.vp-sponsor-grid.mini .vp-sponsor-grid-link{height:72px}.vp-sponsor-grid.mini .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.small .vp-sponsor-grid-link{height:96px}.vp-sponsor-grid.small .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.medium .vp-sponsor-grid-link{height:112px}.vp-sponsor-grid.medium .vp-sponsor-grid-image{max-width:120px;max-height:36px}.vp-sponsor-grid.big .vp-sponsor-grid-link{height:184px}.vp-sponsor-grid.big .vp-sponsor-grid-image{max-width:192px;max-height:56px}.vp-sponsor-grid[data-vp-grid="2"] .vp-sponsor-grid-item{width:calc((100% - 4px)/2)}.vp-sponsor-grid[data-vp-grid="3"] .vp-sponsor-grid-item{width:calc((100% - 4px * 2) / 3)}.vp-sponsor-grid[data-vp-grid="4"] .vp-sponsor-grid-item{width:calc((100% - 12px)/4)}.vp-sponsor-grid[data-vp-grid="5"] .vp-sponsor-grid-item{width:calc((100% - 16px)/5)}.vp-sponsor-grid[data-vp-grid="6"] .vp-sponsor-grid-item{width:calc((100% - 4px * 5) / 6)}.vp-sponsor-grid-item{flex-shrink:0;width:100%;background-color:var(--vp-c-bg-soft);transition:background-color .25s}.vp-sponsor-grid-item:hover{background-color:var(--vp-c-default-soft)}.vp-sponsor-grid-item:hover .vp-sponsor-grid-image{filter:grayscale(0) invert(0)}.vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.dark .vp-sponsor-grid-item:hover{background-color:var(--vp-c-white)}.dark .vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.vp-sponsor-grid-link{display:flex}.vp-sponsor-grid-box{display:flex;justify-content:center;align-items:center;width:100%}.vp-sponsor-grid-image{max-width:100%;filter:grayscale(1);transition:filter .25s}.dark .vp-sponsor-grid-image{filter:grayscale(1) invert(1)}.VPBadge{display:inline-block;margin-left:2px;border:1px solid transparent;border-radius:12px;padding:0 10px;line-height:22px;font-size:12px;font-weight:500;transform:translateY(-2px)}.VPBadge.small{padding:0 6px;line-height:18px;font-size:10px;transform:translateY(-8px)}.VPDocFooter .VPBadge{display:none}.vp-doc h1>.VPBadge{margin-top:4px;vertical-align:top}.vp-doc h2>.VPBadge{margin-top:3px;padding:0 8px;vertical-align:top}.vp-doc h3>.VPBadge{vertical-align:middle}.vp-doc h4>.VPBadge,.vp-doc h5>.VPBadge,.vp-doc h6>.VPBadge{vertical-align:middle;line-height:18px}.VPBadge.info{border-color:var(--vp-badge-info-border);color:var(--vp-badge-info-text);background-color:var(--vp-badge-info-bg)}.VPBadge.tip{border-color:var(--vp-badge-tip-border);color:var(--vp-badge-tip-text);background-color:var(--vp-badge-tip-bg)}.VPBadge.warning{border-color:var(--vp-badge-warning-border);color:var(--vp-badge-warning-text);background-color:var(--vp-badge-warning-bg)}.VPBadge.danger{border-color:var(--vp-badge-danger-border);color:var(--vp-badge-danger-text);background-color:var(--vp-badge-danger-bg)}.VPHomeSponsors[data-v-3dc26e1d]{border-top:1px solid var(--vp-c-gutter);padding-top:88px!important}.VPHomeSponsors[data-v-3dc26e1d]{margin:96px 0}@media (min-width: 768px){.VPHomeSponsors[data-v-3dc26e1d]{margin:128px 0}}.VPHomeSponsors[data-v-3dc26e1d]{padding:0 24px}@media (min-width: 768px){.VPHomeSponsors[data-v-3dc26e1d]{padding:0 48px}}@media (min-width: 960px){.VPHomeSponsors[data-v-3dc26e1d]{padding:0 64px}}.container[data-v-3dc26e1d]{margin:0 auto;max-width:1152px}.love[data-v-3dc26e1d]{margin:0 auto;width:fit-content;font-size:28px;color:var(--vp-c-text-3)}.icon[data-v-3dc26e1d]{display:inline-block}.message[data-v-3dc26e1d]{margin:0 auto;padding-top:10px;max-width:320px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.sponsors[data-v-3dc26e1d]{padding-top:32px}.action[data-v-3dc26e1d]{padding-top:40px;text-align:center}.VPTeamMembersItem[data-v-acff304e]{display:flex;flex-direction:column;gap:2px;border-radius:12px;width:100%;height:100%;overflow:hidden}.VPTeamMembersItem.small .profile[data-v-acff304e]{padding:32px}.VPTeamMembersItem.small .data[data-v-acff304e]{padding-top:20px}.VPTeamMembersItem.small .avatar[data-v-acff304e]{width:64px;height:64px}.VPTeamMembersItem.small .name[data-v-acff304e]{line-height:24px;font-size:16px}.VPTeamMembersItem.small .affiliation[data-v-acff304e]{padding-top:4px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .desc[data-v-acff304e]{padding-top:12px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .links[data-v-acff304e]{margin:0 -16px -20px;padding:10px 0 0}.VPTeamMembersItem.medium .profile[data-v-acff304e]{padding:48px 32px}.VPTeamMembersItem.medium .data[data-v-acff304e]{padding-top:24px;text-align:center}.VPTeamMembersItem.medium .avatar[data-v-acff304e]{width:96px;height:96px}.VPTeamMembersItem.medium .name[data-v-acff304e]{letter-spacing:.15px;line-height:28px;font-size:20px}.VPTeamMembersItem.medium .affiliation[data-v-acff304e]{padding-top:4px;font-size:16px}.VPTeamMembersItem.medium .desc[data-v-acff304e]{padding-top:16px;max-width:288px;font-size:16px}.VPTeamMembersItem.medium .links[data-v-acff304e]{margin:0 -16px -12px;padding:16px 12px 0}.profile[data-v-acff304e]{flex-grow:1;background-color:var(--vp-c-bg-soft)}.data[data-v-acff304e]{text-align:center}.avatar[data-v-acff304e]{position:relative;flex-shrink:0;margin:0 auto;border-radius:50%;box-shadow:var(--vp-shadow-3)}.avatar-img[data-v-acff304e]{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;object-fit:cover}.name[data-v-acff304e]{margin:0;font-weight:600}.affiliation[data-v-acff304e]{margin:0;font-weight:500;color:var(--vp-c-text-2)}.org.link[data-v-acff304e]{color:var(--vp-c-text-2);transition:color .25s}.org.link[data-v-acff304e]:hover{color:var(--vp-c-brand-1)}.desc[data-v-acff304e]{margin:0 auto}.desc[data-v-acff304e] a{font-weight:500;color:var(--vp-c-brand-1);text-decoration-style:dotted;transition:color .25s}.links[data-v-acff304e]{display:flex;justify-content:center;height:56px}.sp-link[data-v-acff304e]{display:flex;justify-content:center;align-items:center;text-align:center;padding:16px;font-size:14px;font-weight:500;color:var(--vp-c-sponsor);background-color:var(--vp-c-bg-soft);transition:color .25s,background-color .25s}.sp .sp-link.link[data-v-acff304e]:hover,.sp .sp-link.link[data-v-acff304e]:focus{outline:none;color:var(--vp-c-white);background-color:var(--vp-c-sponsor)}.sp-icon[data-v-acff304e]{margin-right:8px;font-size:16px}.VPTeamMembers.small .container[data-v-bf782009]{grid-template-columns:repeat(auto-fit,minmax(224px,1fr))}.VPTeamMembers.small.count-1 .container[data-v-bf782009]{max-width:276px}.VPTeamMembers.small.count-2 .container[data-v-bf782009]{max-width:576px}.VPTeamMembers.small.count-3 .container[data-v-bf782009]{max-width:876px}.VPTeamMembers.medium .container[data-v-bf782009]{grid-template-columns:repeat(auto-fit,minmax(256px,1fr))}@media (min-width: 375px){.VPTeamMembers.medium .container[data-v-bf782009]{grid-template-columns:repeat(auto-fit,minmax(288px,1fr))}}.VPTeamMembers.medium.count-1 .container[data-v-bf782009]{max-width:368px}.VPTeamMembers.medium.count-2 .container[data-v-bf782009]{max-width:760px}.container[data-v-bf782009]{display:grid;gap:24px;margin:0 auto;max-width:1152px}.VPTeamPage[data-v-a5329171]{margin:96px 0}@media (min-width: 768px){.VPTeamPage[data-v-a5329171]{margin:128px 0}}.VPHome .VPTeamPageTitle[data-v-a5329171-s]{border-top:1px solid var(--vp-c-gutter);padding-top:88px!important}.VPTeamPageSection+.VPTeamPageSection[data-v-a5329171-s],.VPTeamMembers+.VPTeamPageSection[data-v-a5329171-s]{margin-top:64px}.VPTeamMembers+.VPTeamMembers[data-v-a5329171-s]{margin-top:24px}@media (min-width: 768px){.VPTeamPageTitle+.VPTeamPageSection[data-v-a5329171-s]{margin-top:16px}.VPTeamPageSection+.VPTeamPageSection[data-v-a5329171-s],.VPTeamMembers+.VPTeamPageSection[data-v-a5329171-s]{margin-top:96px}}.VPTeamMembers[data-v-a5329171-s]{padding:0 24px}@media (min-width: 768px){.VPTeamMembers[data-v-a5329171-s]{padding:0 48px}}@media (min-width: 960px){.VPTeamMembers[data-v-a5329171-s]{padding:0 64px}}.VPTeamPageSection[data-v-3bf2e850]{padding:0 32px}@media (min-width: 768px){.VPTeamPageSection[data-v-3bf2e850]{padding:0 48px}}@media (min-width: 960px){.VPTeamPageSection[data-v-3bf2e850]{padding:0 64px}}.title[data-v-3bf2e850]{position:relative;margin:0 auto;max-width:1152px;text-align:center;color:var(--vp-c-text-2)}.title-line[data-v-3bf2e850]{position:absolute;top:16px;left:0;width:100%;height:1px;background-color:var(--vp-c-divider)}.title-text[data-v-3bf2e850]{position:relative;display:inline-block;padding:0 24px;letter-spacing:0;line-height:32px;font-size:20px;font-weight:500;background-color:var(--vp-c-bg)}.lead[data-v-3bf2e850]{margin:0 auto;max-width:480px;padding-top:12px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.members[data-v-3bf2e850]{padding-top:40px}.VPTeamPageTitle[data-v-46c5e327]{padding:48px 32px;text-align:center}@media (min-width: 768px){.VPTeamPageTitle[data-v-46c5e327]{padding:64px 48px 48px}}@media (min-width: 960px){.VPTeamPageTitle[data-v-46c5e327]{padding:80px 64px 48px}}.title[data-v-46c5e327]{letter-spacing:0;line-height:44px;font-size:36px;font-weight:500}@media (min-width: 768px){.title[data-v-46c5e327]{letter-spacing:-.5px;line-height:56px;font-size:48px}}.lead[data-v-46c5e327]{margin:0 auto;max-width:512px;padding-top:12px;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 768px){.lead[data-v-46c5e327]{max-width:592px;letter-spacing:.15px;line-height:28px;font-size:20px}}:root{--vp-c-brand-1: #00d4aa;--vp-c-brand-2: #00b894;--vp-c-brand-3: #00a085;--vp-c-accent-1: #fdcb6e;--vp-c-accent-2: #e17055;--vp-c-accent-3: #6c5ce7}.dark{--vp-c-brand-1: #00d4aa;--vp-c-brand-2: #00b894;--vp-c-brand-3: #00a085}.vp-doc h1{background:linear-gradient(135deg,var(--vp-c-brand-1),var(--vp-c-accent-1));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.wysiwyg-editor{border:2px solid var(--vp-c-brand-1);border-radius:8px;overflow:hidden}.wysiwyg-editor .editor-pane{border-right:1px solid var(--vp-c-border)}.wysiwyg-editor .preview-pane{background:var(--vp-c-bg)}.recipe-card{border:1px solid var(--vp-c-border);border-radius:8px;padding:1rem;margin:1rem 0;background:var(--vp-c-bg-soft)}.recipe-card h3{color:var(--vp-c-brand-1);margin-top:0}.tech-tree{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin:2rem 0}.tech-node{border:2px solid var(--vp-c-border);border-radius:8px;padding:1rem;text-align:center;transition:all .2s ease}.tech-node:hover{border-color:var(--vp-c-brand-1);transform:translateY(-2px)}@media (max-width: 768px){.tech-tree{grid-template-columns:1fr}}.preview-content .vp-doc{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.6;color:#2c3e50}.preview-content .vp-doc h1,.preview-content .vp-doc h2,.preview-content .vp-doc h3,.preview-content .vp-doc h4,.preview-content .vp-doc h5,.preview-content .vp-doc h6{margin-top:2rem;margin-bottom:1rem;font-weight:600;line-height:1.25;color:#2c3e50}.preview-content .vp-doc h1{font-size:2.25rem;border-bottom:1px solid #e2e8f0;padding-bottom:.5rem}.preview-content .vp-doc h2{font-size:1.875rem;border-bottom:1px solid #e2e8f0;padding-bottom:.5rem}.preview-content .vp-doc h3{font-size:1.5rem}.preview-content .vp-doc p{margin-bottom:1rem;color:#2c3e50}.preview-content .vp-doc code{background-color:#f1f5f9;padding:.125rem .25rem;border-radius:.25rem;font-family:Fira Code,Monaco,Consolas,Ubuntu Mono,monospace;font-size:.875rem;color:#2c3e50}.preview-content .vp-doc pre{background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:.5rem;padding:1rem;overflow-x:auto;margin:1rem 0}.preview-content .vp-doc pre code{background:none;padding:0;border-radius:0;color:#2c3e50}.preview-content .vp-doc blockquote{border-left:4px solid #3b82f6;padding-left:1rem;margin:1rem 0;color:#64748b}.preview-content .vp-doc ul,.preview-content .vp-doc ol{margin:1rem 0;padding-left:2rem}.preview-content .vp-doc li{margin:.25rem 0;color:#2c3e50}.preview-content .vp-doc table{border-collapse:collapse;width:100%;margin:1rem 0}.preview-content .vp-doc th,.preview-content .vp-doc td{border:1px solid #e2e8f0;padding:.5rem;text-align:left;color:#2c3e50}.preview-content .vp-doc th{background-color:#f8fafc;font-weight:600}.preview-content .vp-doc a{color:#3b82f6;text-decoration:none}.preview-content .vp-doc a:hover{text-decoration:underline}.preview-content .vp-doc img{max-width:100%;height:auto;border-radius:.5rem;margin:1rem 0}.preview-content .custom-block{margin:1rem 0;padding:1rem;border-radius:.5rem;border-left:4px solid}.preview-content .custom-block.tip{background-color:#f0f9ff;border-left-color:#0ea5e9;color:#0c4a6e}.preview-content .custom-block.warning{background-color:#fffbeb;border-left-color:#f59e0b;color:#92400e}.preview-content .custom-block.danger{background-color:#fef2f2;border-left-color:#ef4444;color:#991b1b}.preview-content .custom-block.details{background-color:#f8fafc;border-left-color:#64748b;color:#334155}.preview-content .custom-block-title{font-weight:600;margin-bottom:.5rem;text-transform:capitalize}.preview-content .custom-block-content{margin:0}.preview-content .line-numbers{display:inline-block;margin-right:1rem;color:#6b7280;font-size:.875rem}.preview-content .line-number{display:block;text-align:right;padding-right:.5rem}.preview-content .shiki{background:#f8fafc!important;border:1px solid #e2e8f0;border-radius:.5rem;padding:1rem;overflow-x:auto;margin:1rem 0;font-family:Fira Code,Monaco,Consolas,Ubuntu Mono,monospace;font-size:.875rem;line-height:1.6}.preview-content .shiki code{background:none!important;padding:0!important;border-radius:0!important;font-size:inherit!important}.preview-content .shiki .line-numbers{display:inline-block;margin-right:1rem;color:#6b7280;font-size:.875rem;-webkit-user-select:none;user-select:none}.preview-content .shiki .line-number{display:block;text-align:right;padding-right:.5rem;min-width:2rem}:global(.dark) .preview-content .vp-doc{color:#f9fafb}:global(.dark) .preview-content .vp-doc h1,:global(.dark) .preview-content .vp-doc h2,:global(.dark) .preview-content .vp-doc h3,:global(.dark) .preview-content .vp-doc h4,:global(.dark) .preview-content .vp-doc h5,:global(.dark) .preview-content .vp-doc h6{color:#f9fafb;border-bottom-color:#4a5568}:global(.dark) .preview-content .vp-doc p{color:#f9fafb}:global(.dark) .preview-content .vp-doc li{color:#f9fafb}:global(.dark) .preview-content .vp-doc code{background-color:#2d3748;color:#e2e8f0}:global(.dark) .preview-content .vp-doc pre{background-color:#2d3748;border-color:#4a5568}:global(.dark) .preview-content .vp-doc pre code{color:#e2e8f0}:global(.dark) .preview-content .vp-doc blockquote{border-left-color:#63b3ed;color:#a0aec0}:global(.dark) .preview-content .vp-doc a{color:#63b3ed}:global(.dark) .preview-content .vp-doc th,:global(.dark) .preview-content .vp-doc td{border-color:#4a5568;color:#f9fafb}:global(.dark) .preview-content .vp-doc th{background-color:#2d3748}:global(.dark) .preview-content .shiki{background:#2d3748!important;border-color:#4a5568}.VPCarbonAds[data-v-ae645167]{display:flex;justify-content:center;align-items:center;padding:24px;border-radius:12px;min-height:256px;text-align:center;line-height:18px;font-size:12px;font-weight:500;background-color:var(--vp-carbon-ads-bg-color)}.VPCarbonAds[data-v-ae645167] img{margin:0 auto;border-radius:6px}.VPCarbonAds[data-v-ae645167] .carbon-text{display:block;margin:0 auto;padding-top:12px;color:var(--vp-carbon-ads-text-color);transition:color .25s}.VPCarbonAds[data-v-ae645167] .carbon-text:hover{color:var(--vp-carbon-ads-hover-text-color)}.VPCarbonAds[data-v-ae645167] .carbon-poweredby{display:block;padding-top:6px;font-size:11px;font-weight:500;color:var(--vp-carbon-ads-poweredby-color);text-transform:uppercase;transition:color .25s}.VPCarbonAds[data-v-ae645167] .carbon-poweredby:hover{color:var(--vp-carbon-ads-hover-poweredby-color)}.VPCarbonAds[data-v-ae645167]>div{display:none}.VPCarbonAds[data-v-ae645167]>div:first-of-type{display:block}.VPLocalSearchBox[data-v-68e678c9]{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;display:flex}.backdrop[data-v-68e678c9]{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--vp-backdrop-bg-color);transition:opacity .5s}.shell[data-v-68e678c9]{position:relative;padding:12px;margin:64px auto;display:flex;flex-direction:column;gap:16px;background:var(--vp-local-search-bg);width:min(100vw - 60px,900px);height:min-content;max-height:min(100vh - 128px,900px);border-radius:6px}@media (max-width: 767px){.shell[data-v-68e678c9]{margin:0;width:100vw;height:100vh;max-height:none;border-radius:0}}.search-bar[data-v-68e678c9]{border:1px solid var(--vp-c-divider);border-radius:4px;display:flex;align-items:center;padding:0 12px;cursor:text}@media (max-width: 767px){.search-bar[data-v-68e678c9]{padding:0 8px}}.search-bar[data-v-68e678c9]:focus-within{border-color:var(--vp-c-brand-1)}.local-search-icon[data-v-68e678c9]{display:block;font-size:18px}.navigate-icon[data-v-68e678c9]{display:block;font-size:14px}.search-icon[data-v-68e678c9]{margin:8px}@media (max-width: 767px){.search-icon[data-v-68e678c9]{display:none}}.search-input[data-v-68e678c9]{padding:6px 12px;font-size:inherit;width:100%}@media (max-width: 767px){.search-input[data-v-68e678c9]{padding:6px 4px}}.search-actions[data-v-68e678c9]{display:flex;gap:4px}@media (any-pointer: coarse){.search-actions[data-v-68e678c9]{gap:8px}}@media (min-width: 769px){.search-actions.before[data-v-68e678c9]{display:none}}.search-actions button[data-v-68e678c9]{padding:8px}.search-actions button[data-v-68e678c9]:not([disabled]):hover,.toggle-layout-button.detailed-list[data-v-68e678c9]{color:var(--vp-c-brand-1)}.search-actions button.clear-button[data-v-68e678c9]:disabled{opacity:.37}.search-keyboard-shortcuts[data-v-68e678c9]{font-size:.8rem;opacity:75%;display:flex;flex-wrap:wrap;gap:16px;line-height:14px}.search-keyboard-shortcuts span[data-v-68e678c9]{display:flex;align-items:center;gap:4px}@media (max-width: 767px){.search-keyboard-shortcuts[data-v-68e678c9]{display:none}}.search-keyboard-shortcuts kbd[data-v-68e678c9]{background:#8080801a;border-radius:4px;padding:3px 6px;min-width:24px;display:inline-block;text-align:center;vertical-align:middle;border:1px solid rgba(128,128,128,.15);box-shadow:0 2px 2px #0000001a}.results[data-v-68e678c9]{display:flex;flex-direction:column;gap:6px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}.result[data-v-68e678c9]{display:flex;align-items:center;gap:8px;border-radius:4px;transition:none;line-height:1rem;border:solid 2px var(--vp-local-search-result-border);outline:none}.result>div[data-v-68e678c9]{margin:12px;width:100%;overflow:hidden}@media (max-width: 767px){.result>div[data-v-68e678c9]{margin:8px}}.titles[data-v-68e678c9]{display:flex;flex-wrap:wrap;gap:4px;position:relative;z-index:1001;padding:2px 0}.title[data-v-68e678c9]{display:flex;align-items:center;gap:4px}.title.main[data-v-68e678c9]{font-weight:500}.title-icon[data-v-68e678c9]{opacity:.5;font-weight:500;color:var(--vp-c-brand-1)}.title svg[data-v-68e678c9]{opacity:.5}.result.selected[data-v-68e678c9]{--vp-local-search-result-bg: var(--vp-local-search-result-selected-bg);border-color:var(--vp-local-search-result-selected-border)}.excerpt-wrapper[data-v-68e678c9]{position:relative}.excerpt[data-v-68e678c9]{opacity:50%;pointer-events:none;max-height:140px;overflow:hidden;position:relative;margin-top:4px}.result.selected .excerpt[data-v-68e678c9]{opacity:1}.excerpt[data-v-68e678c9] *{font-size:.8rem!important;line-height:130%!important}.titles[data-v-68e678c9] mark,.excerpt[data-v-68e678c9] mark{background-color:var(--vp-local-search-highlight-bg);color:var(--vp-local-search-highlight-text);border-radius:2px;padding:0 2px}.excerpt[data-v-68e678c9] .vp-code-group .tabs{display:none}.excerpt[data-v-68e678c9] .vp-code-group div[class*=language-]{border-radius:8px!important}.excerpt-gradient-bottom[data-v-68e678c9]{position:absolute;bottom:-1px;left:0;width:100%;height:8px;background:linear-gradient(transparent,var(--vp-local-search-result-bg));z-index:1000}.excerpt-gradient-top[data-v-68e678c9]{position:absolute;top:-1px;left:0;width:100%;height:8px;background:linear-gradient(var(--vp-local-search-result-bg),transparent);z-index:1000}.result.selected .titles[data-v-68e678c9],.result.selected .title-icon[data-v-68e678c9]{color:var(--vp-c-brand-1)!important}.no-results[data-v-68e678c9]{font-size:.9rem;text-align:center;padding:12px}svg[data-v-68e678c9]{flex:none} diff --git a/docs/public/assets/vitepress-extracted-renderer.js b/docs/public/assets/vitepress-extracted-renderer.js new file mode 100644 index 00000000..6ec537a3 --- /dev/null +++ b/docs/public/assets/vitepress-extracted-renderer.js @@ -0,0 +1,296 @@ +var Sa=Object.defineProperty;var Na=(AA,eA,tA)=>eA in AA?Sa(AA,eA,{enumerable:!0,configurable:!0,writable:!0,value:tA}):AA[eA]=tA;var Q1=(AA,eA,tA)=>Na(AA,typeof eA!="symbol"?eA+"":eA,tA);var commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};function getDefaultExportFromCjs(AA){return AA&&AA.__esModule&&Object.prototype.hasOwnProperty.call(AA,"default")?AA.default:AA}function getAugmentedNamespace(AA){if(AA.__esModule)return AA;var eA=AA.default;if(typeof eA=="function"){var tA=function nA(){return this instanceof nA?Reflect.construct(eA,arguments,this.constructor):eA.apply(this,arguments)};tA.prototype=eA.prototype}else tA={};return Object.defineProperty(tA,"__esModule",{value:!0}),Object.keys(AA).forEach(function(nA){var rA=Object.getOwnPropertyDescriptor(AA,nA);Object.defineProperty(tA,nA,rA.get?rA:{enumerable:!0,get:function(){return AA[nA]}})}),tA}var buffer$1={},base64Js={};base64Js.byteLength=byteLength;base64Js.toByteArray=toByteArray;base64Js.fromByteArray=fromByteArray;var lookup$1=[],revLookup=[],Arr=typeof Uint8Array<"u"?Uint8Array:Array,code$1="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var i$3=0,len=code$1.length;i$30)throw new Error("Invalid string. Length must be a multiple of 4");var tA=AA.indexOf("=");tA===-1&&(tA=eA);var nA=tA===eA?0:4-tA%4;return[tA,nA]}function byteLength(AA){var eA=getLens(AA),tA=eA[0],nA=eA[1];return(tA+nA)*3/4-nA}function _byteLength(AA,eA,tA){return(eA+tA)*3/4-tA}function toByteArray(AA){var eA,tA=getLens(AA),nA=tA[0],rA=tA[1],oA=new Arr(_byteLength(AA,nA,rA)),aA=0,iA=rA>0?nA-4:nA,sA;for(sA=0;sA>16&255,oA[aA++]=eA>>8&255,oA[aA++]=eA&255;return rA===2&&(eA=revLookup[AA.charCodeAt(sA)]<<2|revLookup[AA.charCodeAt(sA+1)]>>4,oA[aA++]=eA&255),rA===1&&(eA=revLookup[AA.charCodeAt(sA)]<<10|revLookup[AA.charCodeAt(sA+1)]<<4|revLookup[AA.charCodeAt(sA+2)]>>2,oA[aA++]=eA>>8&255,oA[aA++]=eA&255),oA}function tripletToBase64(AA){return lookup$1[AA>>18&63]+lookup$1[AA>>12&63]+lookup$1[AA>>6&63]+lookup$1[AA&63]}function encodeChunk(AA,eA,tA){for(var nA,rA=[],oA=eA;oAiA?iA:aA+oA));return nA===1?(eA=AA[tA-1],rA.push(lookup$1[eA>>2]+lookup$1[eA<<4&63]+"==")):nA===2&&(eA=(AA[tA-2]<<8)+AA[tA-1],rA.push(lookup$1[eA>>10]+lookup$1[eA>>4&63]+lookup$1[eA<<2&63]+"=")),rA.join("")}var ieee754={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ieee754.read=function(AA,eA,tA,nA,rA){var oA,aA,iA=rA*8-nA-1,sA=(1<>1,uA=-7,lA=tA?rA-1:0,gA=tA?-1:1,QA=AA[eA+lA];for(lA+=gA,oA=QA&(1<<-uA)-1,QA>>=-uA,uA+=iA;uA>0;oA=oA*256+AA[eA+lA],lA+=gA,uA-=8);for(aA=oA&(1<<-uA)-1,oA>>=-uA,uA+=nA;uA>0;aA=aA*256+AA[eA+lA],lA+=gA,uA-=8);if(oA===0)oA=1-cA;else{if(oA===sA)return aA?NaN:(QA?-1:1)*(1/0);aA=aA+Math.pow(2,nA),oA=oA-cA}return(QA?-1:1)*aA*Math.pow(2,oA-nA)};ieee754.write=function(AA,eA,tA,nA,rA,oA){var aA,iA,sA,cA=oA*8-rA-1,uA=(1<>1,gA=rA===23?Math.pow(2,-24)-Math.pow(2,-77):0,QA=nA?0:oA-1,dA=nA?1:-1,fA=eA<0||eA===0&&1/eA<0?1:0;for(eA=Math.abs(eA),isNaN(eA)||eA===1/0?(iA=isNaN(eA)?1:0,aA=uA):(aA=Math.floor(Math.log(eA)/Math.LN2),eA*(sA=Math.pow(2,-aA))<1&&(aA--,sA*=2),aA+lA>=1?eA+=gA/sA:eA+=gA*Math.pow(2,1-lA),eA*sA>=2&&(aA++,sA/=2),aA+lA>=uA?(iA=0,aA=uA):aA+lA>=1?(iA=(eA*sA-1)*Math.pow(2,rA),aA=aA+lA):(iA=eA*Math.pow(2,lA-1)*Math.pow(2,rA),aA=0));rA>=8;AA[tA+QA]=iA&255,QA+=dA,iA/=256,rA-=8);for(aA=aA<0;AA[tA+QA]=aA&255,QA+=dA,aA/=256,cA-=8);AA[tA+QA-dA]|=fA*128};(function(AA){/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */const eA=base64Js,tA=ieee754,nA=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;AA.Buffer=iA,AA.SlowBuffer=pA,AA.INSPECT_MAX_BYTES=50;const rA=2147483647;AA.kMaxLength=rA,iA.TYPED_ARRAY_SUPPORT=oA(),!iA.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function oA(){try{const PA=new Uint8Array(1),vA={foo:function(){return 42}};return Object.setPrototypeOf(vA,Uint8Array.prototype),Object.setPrototypeOf(PA,vA),PA.foo()===42}catch{return!1}}Object.defineProperty(iA.prototype,"parent",{enumerable:!0,get:function(){if(iA.isBuffer(this))return this.buffer}}),Object.defineProperty(iA.prototype,"offset",{enumerable:!0,get:function(){if(iA.isBuffer(this))return this.byteOffset}});function aA(PA){if(PA>rA)throw new RangeError('The value "'+PA+'" is invalid for option "size"');const vA=new Uint8Array(PA);return Object.setPrototypeOf(vA,iA.prototype),vA}function iA(PA,vA,kA){if(typeof PA=="number"){if(typeof vA=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return lA(PA)}return sA(PA,vA,kA)}iA.poolSize=8192;function sA(PA,vA,kA){if(typeof PA=="string")return gA(PA,vA);if(ArrayBuffer.isView(PA))return dA(PA);if(PA==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof PA);if(c1(PA,ArrayBuffer)||PA&&c1(PA.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(c1(PA,SharedArrayBuffer)||PA&&c1(PA.buffer,SharedArrayBuffer)))return fA(PA,vA,kA);if(typeof PA=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const qA=PA.valueOf&&PA.valueOf();if(qA!=null&&qA!==PA)return iA.from(qA,vA,kA);const JA=hA(PA);if(JA)return JA;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof PA[Symbol.toPrimitive]=="function")return iA.from(PA[Symbol.toPrimitive]("string"),vA,kA);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof PA)}iA.from=function(PA,vA,kA){return sA(PA,vA,kA)},Object.setPrototypeOf(iA.prototype,Uint8Array.prototype),Object.setPrototypeOf(iA,Uint8Array);function cA(PA){if(typeof PA!="number")throw new TypeError('"size" argument must be of type number');if(PA<0)throw new RangeError('The value "'+PA+'" is invalid for option "size"')}function uA(PA,vA,kA){return cA(PA),PA<=0?aA(PA):vA!==void 0?typeof kA=="string"?aA(PA).fill(vA,kA):aA(PA).fill(vA):aA(PA)}iA.alloc=function(PA,vA,kA){return uA(PA,vA,kA)};function lA(PA){return cA(PA),aA(PA<0?0:TA(PA)|0)}iA.allocUnsafe=function(PA){return lA(PA)},iA.allocUnsafeSlow=function(PA){return lA(PA)};function gA(PA,vA){if((typeof vA!="string"||vA==="")&&(vA="utf8"),!iA.isEncoding(vA))throw new TypeError("Unknown encoding: "+vA);const kA=mA(PA,vA)|0;let qA=aA(kA);const JA=qA.write(PA,vA);return JA!==kA&&(qA=qA.slice(0,JA)),qA}function QA(PA){const vA=PA.length<0?0:TA(PA.length)|0,kA=aA(vA);for(let qA=0;qA=rA)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+rA.toString(16)+" bytes");return PA|0}function pA(PA){return+PA!=PA&&(PA=0),iA.alloc(+PA)}iA.isBuffer=function(vA){return vA!=null&&vA._isBuffer===!0&&vA!==iA.prototype},iA.compare=function(vA,kA){if(c1(vA,Uint8Array)&&(vA=iA.from(vA,vA.offset,vA.byteLength)),c1(kA,Uint8Array)&&(kA=iA.from(kA,kA.offset,kA.byteLength)),!iA.isBuffer(vA)||!iA.isBuffer(kA))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(vA===kA)return 0;let qA=vA.length,JA=kA.length;for(let t1=0,r1=Math.min(qA,JA);t1JA.length?(iA.isBuffer(r1)||(r1=iA.from(r1)),r1.copy(JA,t1)):Uint8Array.prototype.set.call(JA,r1,t1);else if(iA.isBuffer(r1))r1.copy(JA,t1);else throw new TypeError('"list" argument must be an Array of Buffers');t1+=r1.length}return JA};function mA(PA,vA){if(iA.isBuffer(PA))return PA.length;if(ArrayBuffer.isView(PA)||c1(PA,ArrayBuffer))return PA.byteLength;if(typeof PA!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof PA);const kA=PA.length,qA=arguments.length>2&&arguments[2]===!0;if(!qA&&kA===0)return 0;let JA=!1;for(;;)switch(vA){case"ascii":case"latin1":case"binary":return kA;case"utf8":case"utf-8":return e1(PA).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return kA*2;case"hex":return kA>>>1;case"base64":return s1(PA).length;default:if(JA)return qA?-1:e1(PA).length;vA=(""+vA).toLowerCase(),JA=!0}}iA.byteLength=mA;function EA(PA,vA,kA){let qA=!1;if((vA===void 0||vA<0)&&(vA=0),vA>this.length||((kA===void 0||kA>this.length)&&(kA=this.length),kA<=0)||(kA>>>=0,vA>>>=0,kA<=vA))return"";for(PA||(PA="utf8");;)switch(PA){case"hex":return YA(this,vA,kA);case"utf8":case"utf-8":return SA(this,vA,kA);case"ascii":return RA(this,vA,kA);case"latin1":case"binary":return $A(this,vA,kA);case"base64":return xA(this,vA,kA);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return UA(this,vA,kA);default:if(qA)throw new TypeError("Unknown encoding: "+PA);PA=(PA+"").toLowerCase(),qA=!0}}iA.prototype._isBuffer=!0;function BA(PA,vA,kA){const qA=PA[vA];PA[vA]=PA[kA],PA[kA]=qA}iA.prototype.swap16=function(){const vA=this.length;if(vA%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let kA=0;kAkA&&(vA+=" ... "),""},nA&&(iA.prototype[nA]=iA.prototype.inspect),iA.prototype.compare=function(vA,kA,qA,JA,t1){if(c1(vA,Uint8Array)&&(vA=iA.from(vA,vA.offset,vA.byteLength)),!iA.isBuffer(vA))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof vA);if(kA===void 0&&(kA=0),qA===void 0&&(qA=vA?vA.length:0),JA===void 0&&(JA=0),t1===void 0&&(t1=this.length),kA<0||qA>vA.length||JA<0||t1>this.length)throw new RangeError("out of range index");if(JA>=t1&&kA>=qA)return 0;if(JA>=t1)return-1;if(kA>=qA)return 1;if(kA>>>=0,qA>>>=0,JA>>>=0,t1>>>=0,this===vA)return 0;let r1=t1-JA,C1=qA-kA;const D1=Math.min(r1,C1),w1=this.slice(JA,t1),y1=vA.slice(kA,qA);for(let b1=0;b12147483647?kA=2147483647:kA<-2147483648&&(kA=-2147483648),kA=+kA,g1(kA)&&(kA=JA?0:PA.length-1),kA<0&&(kA=PA.length+kA),kA>=PA.length){if(JA)return-1;kA=PA.length-1}else if(kA<0)if(JA)kA=0;else return-1;if(typeof vA=="string"&&(vA=iA.from(vA,qA)),iA.isBuffer(vA))return vA.length===0?-1:IA(PA,vA,kA,qA,JA);if(typeof vA=="number")return vA=vA&255,typeof Uint8Array.prototype.indexOf=="function"?JA?Uint8Array.prototype.indexOf.call(PA,vA,kA):Uint8Array.prototype.lastIndexOf.call(PA,vA,kA):IA(PA,[vA],kA,qA,JA);throw new TypeError("val must be string, number or Buffer")}function IA(PA,vA,kA,qA,JA){let t1=1,r1=PA.length,C1=vA.length;if(qA!==void 0&&(qA=String(qA).toLowerCase(),qA==="ucs2"||qA==="ucs-2"||qA==="utf16le"||qA==="utf-16le")){if(PA.length<2||vA.length<2)return-1;t1=2,r1/=2,C1/=2,kA/=2}function D1(y1,b1){return t1===1?y1[b1]:y1.readUInt16BE(b1*t1)}let w1;if(JA){let y1=-1;for(w1=kA;w1r1&&(kA=r1-C1),w1=kA;w1>=0;w1--){let y1=!0;for(let b1=0;b1JA&&(qA=JA)):qA=JA;const t1=vA.length;qA>t1/2&&(qA=t1/2);let r1;for(r1=0;r1>>0,isFinite(qA)?(qA=qA>>>0,JA===void 0&&(JA="utf8")):(JA=qA,qA=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const t1=this.length-kA;if((qA===void 0||qA>t1)&&(qA=t1),vA.length>0&&(qA<0||kA<0)||kA>this.length)throw new RangeError("Attempt to write outside buffer bounds");JA||(JA="utf8");let r1=!1;for(;;)switch(JA){case"hex":return yA(this,vA,kA,qA);case"utf8":case"utf-8":return _A(this,vA,kA,qA);case"ascii":case"latin1":case"binary":return DA(this,vA,kA,qA);case"base64":return HA(this,vA,kA,qA);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return MA(this,vA,kA,qA);default:if(r1)throw new TypeError("Unknown encoding: "+JA);JA=(""+JA).toLowerCase(),r1=!0}},iA.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function xA(PA,vA,kA){return vA===0&&kA===PA.length?eA.fromByteArray(PA):eA.fromByteArray(PA.slice(vA,kA))}function SA(PA,vA,kA){kA=Math.min(PA.length,kA);const qA=[];let JA=vA;for(;JA239?4:t1>223?3:t1>191?2:1;if(JA+C1<=kA){let D1,w1,y1,b1;switch(C1){case 1:t1<128&&(r1=t1);break;case 2:D1=PA[JA+1],(D1&192)===128&&(b1=(t1&31)<<6|D1&63,b1>127&&(r1=b1));break;case 3:D1=PA[JA+1],w1=PA[JA+2],(D1&192)===128&&(w1&192)===128&&(b1=(t1&15)<<12|(D1&63)<<6|w1&63,b1>2047&&(b1<55296||b1>57343)&&(r1=b1));break;case 4:D1=PA[JA+1],w1=PA[JA+2],y1=PA[JA+3],(D1&192)===128&&(w1&192)===128&&(y1&192)===128&&(b1=(t1&15)<<18|(D1&63)<<12|(w1&63)<<6|y1&63,b1>65535&&b1<1114112&&(r1=b1))}}r1===null?(r1=65533,C1=1):r1>65535&&(r1-=65536,qA.push(r1>>>10&1023|55296),r1=56320|r1&1023),qA.push(r1),JA+=C1}return FA(qA)}const OA=4096;function FA(PA){const vA=PA.length;if(vA<=OA)return String.fromCharCode.apply(String,PA);let kA="",qA=0;for(;qAqA)&&(kA=qA);let JA="";for(let t1=vA;t1qA&&(vA=qA),kA<0?(kA+=qA,kA<0&&(kA=0)):kA>qA&&(kA=qA),kAkA)throw new RangeError("Trying to access beyond buffer length")}iA.prototype.readUintLE=iA.prototype.readUIntLE=function(vA,kA,qA){vA=vA>>>0,kA=kA>>>0,qA||VA(vA,kA,this.length);let JA=this[vA],t1=1,r1=0;for(;++r1>>0,kA=kA>>>0,qA||VA(vA,kA,this.length);let JA=this[vA+--kA],t1=1;for(;kA>0&&(t1*=256);)JA+=this[vA+--kA]*t1;return JA},iA.prototype.readUint8=iA.prototype.readUInt8=function(vA,kA){return vA=vA>>>0,kA||VA(vA,1,this.length),this[vA]},iA.prototype.readUint16LE=iA.prototype.readUInt16LE=function(vA,kA){return vA=vA>>>0,kA||VA(vA,2,this.length),this[vA]|this[vA+1]<<8},iA.prototype.readUint16BE=iA.prototype.readUInt16BE=function(vA,kA){return vA=vA>>>0,kA||VA(vA,2,this.length),this[vA]<<8|this[vA+1]},iA.prototype.readUint32LE=iA.prototype.readUInt32LE=function(vA,kA){return vA=vA>>>0,kA||VA(vA,4,this.length),(this[vA]|this[vA+1]<<8|this[vA+2]<<16)+this[vA+3]*16777216},iA.prototype.readUint32BE=iA.prototype.readUInt32BE=function(vA,kA){return vA=vA>>>0,kA||VA(vA,4,this.length),this[vA]*16777216+(this[vA+1]<<16|this[vA+2]<<8|this[vA+3])},iA.prototype.readBigUInt64LE=T1(function(vA){vA=vA>>>0,jA(vA,"offset");const kA=this[vA],qA=this[vA+7];(kA===void 0||qA===void 0)&&KA(vA,this.length-8);const JA=kA+this[++vA]*2**8+this[++vA]*2**16+this[++vA]*2**24,t1=this[++vA]+this[++vA]*2**8+this[++vA]*2**16+qA*2**24;return BigInt(JA)+(BigInt(t1)<>>0,jA(vA,"offset");const kA=this[vA],qA=this[vA+7];(kA===void 0||qA===void 0)&&KA(vA,this.length-8);const JA=kA*2**24+this[++vA]*2**16+this[++vA]*2**8+this[++vA],t1=this[++vA]*2**24+this[++vA]*2**16+this[++vA]*2**8+qA;return(BigInt(JA)<>>0,kA=kA>>>0,qA||VA(vA,kA,this.length);let JA=this[vA],t1=1,r1=0;for(;++r1=t1&&(JA-=Math.pow(2,8*kA)),JA},iA.prototype.readIntBE=function(vA,kA,qA){vA=vA>>>0,kA=kA>>>0,qA||VA(vA,kA,this.length);let JA=kA,t1=1,r1=this[vA+--JA];for(;JA>0&&(t1*=256);)r1+=this[vA+--JA]*t1;return t1*=128,r1>=t1&&(r1-=Math.pow(2,8*kA)),r1},iA.prototype.readInt8=function(vA,kA){return vA=vA>>>0,kA||VA(vA,1,this.length),this[vA]&128?(255-this[vA]+1)*-1:this[vA]},iA.prototype.readInt16LE=function(vA,kA){vA=vA>>>0,kA||VA(vA,2,this.length);const qA=this[vA]|this[vA+1]<<8;return qA&32768?qA|4294901760:qA},iA.prototype.readInt16BE=function(vA,kA){vA=vA>>>0,kA||VA(vA,2,this.length);const qA=this[vA+1]|this[vA]<<8;return qA&32768?qA|4294901760:qA},iA.prototype.readInt32LE=function(vA,kA){return vA=vA>>>0,kA||VA(vA,4,this.length),this[vA]|this[vA+1]<<8|this[vA+2]<<16|this[vA+3]<<24},iA.prototype.readInt32BE=function(vA,kA){return vA=vA>>>0,kA||VA(vA,4,this.length),this[vA]<<24|this[vA+1]<<16|this[vA+2]<<8|this[vA+3]},iA.prototype.readBigInt64LE=T1(function(vA){vA=vA>>>0,jA(vA,"offset");const kA=this[vA],qA=this[vA+7];(kA===void 0||qA===void 0)&&KA(vA,this.length-8);const JA=this[vA+4]+this[vA+5]*2**8+this[vA+6]*2**16+(qA<<24);return(BigInt(JA)<>>0,jA(vA,"offset");const kA=this[vA],qA=this[vA+7];(kA===void 0||qA===void 0)&&KA(vA,this.length-8);const JA=(kA<<24)+this[++vA]*2**16+this[++vA]*2**8+this[++vA];return(BigInt(JA)<>>0,kA||VA(vA,4,this.length),tA.read(this,vA,!0,23,4)},iA.prototype.readFloatBE=function(vA,kA){return vA=vA>>>0,kA||VA(vA,4,this.length),tA.read(this,vA,!1,23,4)},iA.prototype.readDoubleLE=function(vA,kA){return vA=vA>>>0,kA||VA(vA,8,this.length),tA.read(this,vA,!0,52,8)},iA.prototype.readDoubleBE=function(vA,kA){return vA=vA>>>0,kA||VA(vA,8,this.length),tA.read(this,vA,!1,52,8)};function ZA(PA,vA,kA,qA,JA,t1){if(!iA.isBuffer(PA))throw new TypeError('"buffer" argument must be a Buffer instance');if(vA>JA||vAPA.length)throw new RangeError("Index out of range")}iA.prototype.writeUintLE=iA.prototype.writeUIntLE=function(vA,kA,qA,JA){if(vA=+vA,kA=kA>>>0,qA=qA>>>0,!JA){const C1=Math.pow(2,8*qA)-1;ZA(this,vA,kA,qA,C1,0)}let t1=1,r1=0;for(this[kA]=vA&255;++r1>>0,qA=qA>>>0,!JA){const C1=Math.pow(2,8*qA)-1;ZA(this,vA,kA,qA,C1,0)}let t1=qA-1,r1=1;for(this[kA+t1]=vA&255;--t1>=0&&(r1*=256);)this[kA+t1]=vA/r1&255;return kA+qA},iA.prototype.writeUint8=iA.prototype.writeUInt8=function(vA,kA,qA){return vA=+vA,kA=kA>>>0,qA||ZA(this,vA,kA,1,255,0),this[kA]=vA&255,kA+1},iA.prototype.writeUint16LE=iA.prototype.writeUInt16LE=function(vA,kA,qA){return vA=+vA,kA=kA>>>0,qA||ZA(this,vA,kA,2,65535,0),this[kA]=vA&255,this[kA+1]=vA>>>8,kA+2},iA.prototype.writeUint16BE=iA.prototype.writeUInt16BE=function(vA,kA,qA){return vA=+vA,kA=kA>>>0,qA||ZA(this,vA,kA,2,65535,0),this[kA]=vA>>>8,this[kA+1]=vA&255,kA+2},iA.prototype.writeUint32LE=iA.prototype.writeUInt32LE=function(vA,kA,qA){return vA=+vA,kA=kA>>>0,qA||ZA(this,vA,kA,4,4294967295,0),this[kA+3]=vA>>>24,this[kA+2]=vA>>>16,this[kA+1]=vA>>>8,this[kA]=vA&255,kA+4},iA.prototype.writeUint32BE=iA.prototype.writeUInt32BE=function(vA,kA,qA){return vA=+vA,kA=kA>>>0,qA||ZA(this,vA,kA,4,4294967295,0),this[kA]=vA>>>24,this[kA+1]=vA>>>16,this[kA+2]=vA>>>8,this[kA+3]=vA&255,kA+4};function WA(PA,vA,kA,qA,JA){E1(vA,qA,JA,PA,kA,7);let t1=Number(vA&BigInt(4294967295));PA[kA++]=t1,t1=t1>>8,PA[kA++]=t1,t1=t1>>8,PA[kA++]=t1,t1=t1>>8,PA[kA++]=t1;let r1=Number(vA>>BigInt(32)&BigInt(4294967295));return PA[kA++]=r1,r1=r1>>8,PA[kA++]=r1,r1=r1>>8,PA[kA++]=r1,r1=r1>>8,PA[kA++]=r1,kA}function GA(PA,vA,kA,qA,JA){E1(vA,qA,JA,PA,kA,7);let t1=Number(vA&BigInt(4294967295));PA[kA+7]=t1,t1=t1>>8,PA[kA+6]=t1,t1=t1>>8,PA[kA+5]=t1,t1=t1>>8,PA[kA+4]=t1;let r1=Number(vA>>BigInt(32)&BigInt(4294967295));return PA[kA+3]=r1,r1=r1>>8,PA[kA+2]=r1,r1=r1>>8,PA[kA+1]=r1,r1=r1>>8,PA[kA]=r1,kA+8}iA.prototype.writeBigUInt64LE=T1(function(vA,kA=0){return WA(this,vA,kA,BigInt(0),BigInt("0xffffffffffffffff"))}),iA.prototype.writeBigUInt64BE=T1(function(vA,kA=0){return GA(this,vA,kA,BigInt(0),BigInt("0xffffffffffffffff"))}),iA.prototype.writeIntLE=function(vA,kA,qA,JA){if(vA=+vA,kA=kA>>>0,!JA){const D1=Math.pow(2,8*qA-1);ZA(this,vA,kA,qA,D1-1,-D1)}let t1=0,r1=1,C1=0;for(this[kA]=vA&255;++t1>0)-C1&255;return kA+qA},iA.prototype.writeIntBE=function(vA,kA,qA,JA){if(vA=+vA,kA=kA>>>0,!JA){const D1=Math.pow(2,8*qA-1);ZA(this,vA,kA,qA,D1-1,-D1)}let t1=qA-1,r1=1,C1=0;for(this[kA+t1]=vA&255;--t1>=0&&(r1*=256);)vA<0&&C1===0&&this[kA+t1+1]!==0&&(C1=1),this[kA+t1]=(vA/r1>>0)-C1&255;return kA+qA},iA.prototype.writeInt8=function(vA,kA,qA){return vA=+vA,kA=kA>>>0,qA||ZA(this,vA,kA,1,127,-128),vA<0&&(vA=255+vA+1),this[kA]=vA&255,kA+1},iA.prototype.writeInt16LE=function(vA,kA,qA){return vA=+vA,kA=kA>>>0,qA||ZA(this,vA,kA,2,32767,-32768),this[kA]=vA&255,this[kA+1]=vA>>>8,kA+2},iA.prototype.writeInt16BE=function(vA,kA,qA){return vA=+vA,kA=kA>>>0,qA||ZA(this,vA,kA,2,32767,-32768),this[kA]=vA>>>8,this[kA+1]=vA&255,kA+2},iA.prototype.writeInt32LE=function(vA,kA,qA){return vA=+vA,kA=kA>>>0,qA||ZA(this,vA,kA,4,2147483647,-2147483648),this[kA]=vA&255,this[kA+1]=vA>>>8,this[kA+2]=vA>>>16,this[kA+3]=vA>>>24,kA+4},iA.prototype.writeInt32BE=function(vA,kA,qA){return vA=+vA,kA=kA>>>0,qA||ZA(this,vA,kA,4,2147483647,-2147483648),vA<0&&(vA=4294967295+vA+1),this[kA]=vA>>>24,this[kA+1]=vA>>>16,this[kA+2]=vA>>>8,this[kA+3]=vA&255,kA+4},iA.prototype.writeBigInt64LE=T1(function(vA,kA=0){return WA(this,vA,kA,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),iA.prototype.writeBigInt64BE=T1(function(vA,kA=0){return GA(this,vA,kA,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function o1(PA,vA,kA,qA,JA,t1){if(kA+qA>PA.length)throw new RangeError("Index out of range");if(kA<0)throw new RangeError("Index out of range")}function i1(PA,vA,kA,qA,JA){return vA=+vA,kA=kA>>>0,JA||o1(PA,vA,kA,4),tA.write(PA,vA,kA,qA,23,4),kA+4}iA.prototype.writeFloatLE=function(vA,kA,qA){return i1(this,vA,kA,!0,qA)},iA.prototype.writeFloatBE=function(vA,kA,qA){return i1(this,vA,kA,!1,qA)};function zA(PA,vA,kA,qA,JA){return vA=+vA,kA=kA>>>0,JA||o1(PA,vA,kA,8),tA.write(PA,vA,kA,qA,52,8),kA+8}iA.prototype.writeDoubleLE=function(vA,kA,qA){return zA(this,vA,kA,!0,qA)},iA.prototype.writeDoubleBE=function(vA,kA,qA){return zA(this,vA,kA,!1,qA)},iA.prototype.copy=function(vA,kA,qA,JA){if(!iA.isBuffer(vA))throw new TypeError("argument should be a Buffer");if(qA||(qA=0),!JA&&JA!==0&&(JA=this.length),kA>=vA.length&&(kA=vA.length),kA||(kA=0),JA>0&&JA=this.length)throw new RangeError("Index out of range");if(JA<0)throw new RangeError("sourceEnd out of bounds");JA>this.length&&(JA=this.length),vA.length-kA>>0,qA=qA===void 0?this.length:qA>>>0,vA||(vA=0);let t1;if(typeof vA=="number")for(t1=kA;t12**32?JA=m1(String(kA)):typeof kA=="bigint"&&(JA=String(kA),(kA>BigInt(2)**BigInt(32)||kA<-(BigInt(2)**BigInt(32)))&&(JA=m1(JA)),JA+="n"),qA+=` It must be ${vA}. Received ${JA}`,qA},RangeError);function m1(PA){let vA="",kA=PA.length;const qA=PA[0]==="-"?1:0;for(;kA>=qA+4;kA-=3)vA=`_${PA.slice(kA-3,kA)}${vA}`;return`${PA.slice(0,kA)}${vA}`}function h1(PA,vA,kA){jA(vA,"offset"),(PA[vA]===void 0||PA[vA+kA]===void 0)&&KA(vA,PA.length-(kA+1))}function E1(PA,vA,kA,qA,JA,t1){if(PA>kA||PA= 0${r1} and < 2${r1} ** ${(t1+1)*8}${r1}`:C1=`>= -(2${r1} ** ${(t1+1)*8-1}${r1}) and < 2 ** ${(t1+1)*8-1}${r1}`,new n1.ERR_OUT_OF_RANGE("value",C1,PA)}h1(qA,JA,t1)}function jA(PA,vA){if(typeof PA!="number")throw new n1.ERR_INVALID_ARG_TYPE(vA,"number",PA)}function KA(PA,vA,kA){throw Math.floor(PA)!==PA?(jA(PA,kA),new n1.ERR_OUT_OF_RANGE("offset","an integer",PA)):vA<0?new n1.ERR_BUFFER_OUT_OF_BOUNDS:new n1.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${vA}`,PA)}const XA=/[^+/0-9A-Za-z-_]/g;function a1(PA){if(PA=PA.split("=")[0],PA=PA.trim().replace(XA,""),PA.length<2)return"";for(;PA.length%4!==0;)PA=PA+"=";return PA}function e1(PA,vA){vA=vA||1/0;let kA;const qA=PA.length;let JA=null;const t1=[];for(let r1=0;r155295&&kA<57344){if(!JA){if(kA>56319){(vA-=3)>-1&&t1.push(239,191,189);continue}else if(r1+1===qA){(vA-=3)>-1&&t1.push(239,191,189);continue}JA=kA;continue}if(kA<56320){(vA-=3)>-1&&t1.push(239,191,189),JA=kA;continue}kA=(JA-55296<<10|kA-56320)+65536}else JA&&(vA-=3)>-1&&t1.push(239,191,189);if(JA=null,kA<128){if((vA-=1)<0)break;t1.push(kA)}else if(kA<2048){if((vA-=2)<0)break;t1.push(kA>>6|192,kA&63|128)}else if(kA<65536){if((vA-=3)<0)break;t1.push(kA>>12|224,kA>>6&63|128,kA&63|128)}else if(kA<1114112){if((vA-=4)<0)break;t1.push(kA>>18|240,kA>>12&63|128,kA>>6&63|128,kA&63|128)}else throw new Error("Invalid code point")}return t1}function A1(PA){const vA=[];for(let kA=0;kA>8,JA=kA%256,t1.push(JA),t1.push(qA);return t1}function s1(PA){return eA.toByteArray(a1(PA))}function u1(PA,vA,kA,qA){let JA;for(JA=0;JA=vA.length||JA>=PA.length);++JA)vA[JA+kA]=PA[JA];return JA}function c1(PA,vA){return PA instanceof vA||PA!=null&&PA.constructor!=null&&PA.constructor.name!=null&&PA.constructor.name===vA.name}function g1(PA){return PA!==PA}const d1=function(){const PA="0123456789abcdef",vA=new Array(256);for(let kA=0;kA<16;++kA){const qA=kA*16;for(let JA=0;JA<16;++JA)vA[qA+JA]=PA[kA]+PA[JA]}return vA}();function T1(PA){return typeof BigInt>"u"?B1:PA}function B1(){throw new Error("BigInt not supported")}})(buffer$1);/** +* @vue/shared v3.5.21 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function makeMap(AA){const eA=Object.create(null);for(const tA of AA.split(","))eA[tA]=1;return tA=>tA in eA}const EMPTY_OBJ={},EMPTY_ARR=[],NOOP=()=>{},NO=()=>!1,isOn=AA=>AA.charCodeAt(0)===111&&AA.charCodeAt(1)===110&&(AA.charCodeAt(2)>122||AA.charCodeAt(2)<97),isModelListener=AA=>AA.startsWith("onUpdate:"),extend$2=Object.assign,remove$1=(AA,eA)=>{const tA=AA.indexOf(eA);tA>-1&&AA.splice(tA,1)},hasOwnProperty$1=Object.prototype.hasOwnProperty,hasOwn$1=(AA,eA)=>hasOwnProperty$1.call(AA,eA),isArray$1=Array.isArray,isMap=AA=>toTypeString(AA)==="[object Map]",isSet=AA=>toTypeString(AA)==="[object Set]",isDate$1=AA=>toTypeString(AA)==="[object Date]",isRegExp$2=AA=>toTypeString(AA)==="[object RegExp]",isFunction$2=AA=>typeof AA=="function",isString$2=AA=>typeof AA=="string",isSymbol=AA=>typeof AA=="symbol",isObject$4=AA=>AA!==null&&typeof AA=="object",isPromise=AA=>(isObject$4(AA)||isFunction$2(AA))&&isFunction$2(AA.then)&&isFunction$2(AA.catch),objectToString=Object.prototype.toString,toTypeString=AA=>objectToString.call(AA),toRawType=AA=>toTypeString(AA).slice(8,-1),isPlainObject=AA=>toTypeString(AA)==="[object Object]",isIntegerKey=AA=>isString$2(AA)&&AA!=="NaN"&&AA[0]!=="-"&&""+parseInt(AA,10)===AA,isReservedProp=makeMap(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),isBuiltInDirective=makeMap("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),cacheStringFunction=AA=>{const eA=Object.create(null);return tA=>eA[tA]||(eA[tA]=AA(tA))},camelizeRE=/-\w/g,camelize=cacheStringFunction(AA=>AA.replace(camelizeRE,eA=>eA.slice(1).toUpperCase())),hyphenateRE=/\B([A-Z])/g,hyphenate=cacheStringFunction(AA=>AA.replace(hyphenateRE,"-$1").toLowerCase()),capitalize$1=cacheStringFunction(AA=>AA.charAt(0).toUpperCase()+AA.slice(1)),toHandlerKey=cacheStringFunction(AA=>AA?`on${capitalize$1(AA)}`:""),hasChanged=(AA,eA)=>!Object.is(AA,eA),invokeArrayFns=(AA,...eA)=>{for(let tA=0;tA{Object.defineProperty(AA,eA,{configurable:!0,enumerable:!1,writable:nA,value:tA})},looseToNumber=AA=>{const eA=parseFloat(AA);return isNaN(eA)?AA:eA},toNumber=AA=>{const eA=isString$2(AA)?Number(AA):NaN;return isNaN(eA)?AA:eA};let _globalThis;const getGlobalThis=()=>_globalThis||(_globalThis=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof globalThis<"u"?globalThis:{}),GLOBALS_ALLOWED="Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol",isGloballyAllowed=makeMap(GLOBALS_ALLOWED);function normalizeStyle(AA){if(isArray$1(AA)){const eA={};for(let tA=0;tA{if(tA){const nA=tA.split(propertyDelimiterRE);nA.length>1&&(eA[nA[0].trim()]=nA[1].trim())}}),eA}function normalizeClass(AA){let eA="";if(isString$2(AA))eA=AA;else if(isArray$1(AA))for(let tA=0;tAlooseEqual(tA,eA))}const isRef$1=AA=>!!(AA&&AA.__v_isRef===!0),toDisplayString=AA=>isString$2(AA)?AA:AA==null?"":isArray$1(AA)||isObject$4(AA)&&(AA.toString===objectToString||!isFunction$2(AA.toString))?isRef$1(AA)?toDisplayString(AA.value):JSON.stringify(AA,replacer$1,2):String(AA),replacer$1=(AA,eA)=>isRef$1(eA)?replacer$1(AA,eA.value):isMap(eA)?{[`Map(${eA.size})`]:[...eA.entries()].reduce((tA,[nA,rA],oA)=>(tA[stringifySymbol(nA,oA)+" =>"]=rA,tA),{})}:isSet(eA)?{[`Set(${eA.size})`]:[...eA.values()].map(tA=>stringifySymbol(tA))}:isSymbol(eA)?stringifySymbol(eA):isObject$4(eA)&&!isArray$1(eA)&&!isPlainObject(eA)?String(eA):eA,stringifySymbol=(AA,eA="")=>{var tA;return isSymbol(AA)?`Symbol(${(tA=AA.description)!=null?tA:eA})`:AA};function normalizeCssVarValue(AA){return AA==null?"initial":typeof AA=="string"?AA===""?" ":AA:String(AA)}/** +* @vue/reactivity v3.5.21 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let activeEffectScope;class EffectScope{constructor(eA=!1){this.detached=eA,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=activeEffectScope,!eA&&activeEffectScope&&(this.index=(activeEffectScope.scopes||(activeEffectScope.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let eA,tA;if(this.scopes)for(eA=0,tA=this.scopes.length;eA0&&--this._on===0&&(activeEffectScope=this.prevScope,this.prevScope=void 0)}stop(eA){if(this._active){this._active=!1;let tA,nA;for(tA=0,nA=this.effects.length;tA0)return;if(batchedComputed){let eA=batchedComputed;for(batchedComputed=void 0;eA;){const tA=eA.next;eA.next=void 0,eA.flags&=-9,eA=tA}}let AA;for(;batchedSub;){let eA=batchedSub;for(batchedSub=void 0;eA;){const tA=eA.next;if(eA.next=void 0,eA.flags&=-9,eA.flags&1)try{eA.trigger()}catch(nA){AA||(AA=nA)}eA=tA}}if(AA)throw AA}function prepareDeps(AA){for(let eA=AA.deps;eA;eA=eA.nextDep)eA.version=-1,eA.prevActiveLink=eA.dep.activeLink,eA.dep.activeLink=eA}function cleanupDeps(AA){let eA,tA=AA.depsTail,nA=tA;for(;nA;){const rA=nA.prevDep;nA.version===-1?(nA===tA&&(tA=rA),removeSub(nA),removeDep(nA)):eA=nA,nA.dep.activeLink=nA.prevActiveLink,nA.prevActiveLink=void 0,nA=rA}AA.deps=eA,AA.depsTail=tA}function isDirty(AA){for(let eA=AA.deps;eA;eA=eA.nextDep)if(eA.dep.version!==eA.version||eA.dep.computed&&(refreshComputed(eA.dep.computed)||eA.dep.version!==eA.version))return!0;return!!AA._dirty}function refreshComputed(AA){if(AA.flags&4&&!(AA.flags&16)||(AA.flags&=-17,AA.globalVersion===globalVersion)||(AA.globalVersion=globalVersion,!AA.isSSR&&AA.flags&128&&(!AA.deps&&!AA._dirty||!isDirty(AA))))return;AA.flags|=2;const eA=AA.dep,tA=activeSub,nA=shouldTrack;activeSub=AA,shouldTrack=!0;try{prepareDeps(AA);const rA=AA.fn(AA._value);(eA.version===0||hasChanged(rA,AA._value))&&(AA.flags|=128,AA._value=rA,eA.version++)}catch(rA){throw eA.version++,rA}finally{activeSub=tA,shouldTrack=nA,cleanupDeps(AA),AA.flags&=-3}}function removeSub(AA,eA=!1){const{dep:tA,prevSub:nA,nextSub:rA}=AA;if(nA&&(nA.nextSub=rA,AA.prevSub=void 0),rA&&(rA.prevSub=nA,AA.nextSub=void 0),tA.subs===AA&&(tA.subs=nA,!nA&&tA.computed)){tA.computed.flags&=-5;for(let oA=tA.computed.deps;oA;oA=oA.nextDep)removeSub(oA,!0)}!eA&&!--tA.sc&&tA.map&&tA.map.delete(tA.key)}function removeDep(AA){const{prevDep:eA,nextDep:tA}=AA;eA&&(eA.nextDep=tA,AA.prevDep=void 0),tA&&(tA.prevDep=eA,AA.nextDep=void 0)}function effect(AA,eA){AA.effect instanceof ReactiveEffect&&(AA=AA.effect.fn);const tA=new ReactiveEffect(AA);eA&&extend$2(tA,eA);try{tA.run()}catch(rA){throw tA.stop(),rA}const nA=tA.run.bind(tA);return nA.effect=tA,nA}function stop(AA){AA.effect.stop()}let shouldTrack=!0;const trackStack=[];function pauseTracking(){trackStack.push(shouldTrack),shouldTrack=!1}function resetTracking(){const AA=trackStack.pop();shouldTrack=AA===void 0?!0:AA}function cleanupEffect(AA){const{cleanup:eA}=AA;if(AA.cleanup=void 0,eA){const tA=activeSub;activeSub=void 0;try{eA()}finally{activeSub=tA}}}let globalVersion=0;class Link{constructor(eA,tA){this.sub=eA,this.dep=tA,this.version=tA.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Dep{constructor(eA){this.computed=eA,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(eA){if(!activeSub||!shouldTrack||activeSub===this.computed)return;let tA=this.activeLink;if(tA===void 0||tA.sub!==activeSub)tA=this.activeLink=new Link(activeSub,this),activeSub.deps?(tA.prevDep=activeSub.depsTail,activeSub.depsTail.nextDep=tA,activeSub.depsTail=tA):activeSub.deps=activeSub.depsTail=tA,addSub(tA);else if(tA.version===-1&&(tA.version=this.version,tA.nextDep)){const nA=tA.nextDep;nA.prevDep=tA.prevDep,tA.prevDep&&(tA.prevDep.nextDep=nA),tA.prevDep=activeSub.depsTail,tA.nextDep=void 0,activeSub.depsTail.nextDep=tA,activeSub.depsTail=tA,activeSub.deps===tA&&(activeSub.deps=nA)}return tA}trigger(eA){this.version++,globalVersion++,this.notify(eA)}notify(eA){startBatch();try{for(let tA=this.subs;tA;tA=tA.prevSub)tA.sub.notify()&&tA.sub.dep.notify()}finally{endBatch()}}}function addSub(AA){if(AA.dep.sc++,AA.sub.flags&4){const eA=AA.dep.computed;if(eA&&!AA.dep.subs){eA.flags|=20;for(let nA=eA.deps;nA;nA=nA.nextDep)addSub(nA)}const tA=AA.dep.subs;tA!==AA&&(AA.prevSub=tA,tA&&(tA.nextSub=AA)),AA.dep.subs=AA}}const targetMap=new WeakMap,ITERATE_KEY=Symbol(""),MAP_KEY_ITERATE_KEY=Symbol(""),ARRAY_ITERATE_KEY=Symbol("");function track(AA,eA,tA){if(shouldTrack&&activeSub){let nA=targetMap.get(AA);nA||targetMap.set(AA,nA=new Map);let rA=nA.get(tA);rA||(nA.set(tA,rA=new Dep),rA.map=nA,rA.key=tA),rA.track()}}function trigger(AA,eA,tA,nA,rA,oA){const aA=targetMap.get(AA);if(!aA){globalVersion++;return}const iA=sA=>{sA&&sA.trigger()};if(startBatch(),eA==="clear")aA.forEach(iA);else{const sA=isArray$1(AA),cA=sA&&isIntegerKey(tA);if(sA&&tA==="length"){const uA=Number(nA);aA.forEach((lA,gA)=>{(gA==="length"||gA===ARRAY_ITERATE_KEY||!isSymbol(gA)&&gA>=uA)&&iA(lA)})}else switch((tA!==void 0||aA.has(void 0))&&iA(aA.get(tA)),cA&&iA(aA.get(ARRAY_ITERATE_KEY)),eA){case"add":sA?cA&&iA(aA.get("length")):(iA(aA.get(ITERATE_KEY)),isMap(AA)&&iA(aA.get(MAP_KEY_ITERATE_KEY)));break;case"delete":sA||(iA(aA.get(ITERATE_KEY)),isMap(AA)&&iA(aA.get(MAP_KEY_ITERATE_KEY)));break;case"set":isMap(AA)&&iA(aA.get(ITERATE_KEY));break}}endBatch()}function getDepFromReactive(AA,eA){const tA=targetMap.get(AA);return tA&&tA.get(eA)}function reactiveReadArray(AA){const eA=toRaw(AA);return eA===AA?eA:(track(eA,"iterate",ARRAY_ITERATE_KEY),isShallow(AA)?eA:eA.map(toReactive))}function shallowReadArray(AA){return track(AA=toRaw(AA),"iterate",ARRAY_ITERATE_KEY),AA}const arrayInstrumentations={__proto__:null,[Symbol.iterator](){return iterator(this,Symbol.iterator,toReactive)},concat(...AA){return reactiveReadArray(this).concat(...AA.map(eA=>isArray$1(eA)?reactiveReadArray(eA):eA))},entries(){return iterator(this,"entries",AA=>(AA[1]=toReactive(AA[1]),AA))},every(AA,eA){return apply(this,"every",AA,eA,void 0,arguments)},filter(AA,eA){return apply(this,"filter",AA,eA,tA=>tA.map(toReactive),arguments)},find(AA,eA){return apply(this,"find",AA,eA,toReactive,arguments)},findIndex(AA,eA){return apply(this,"findIndex",AA,eA,void 0,arguments)},findLast(AA,eA){return apply(this,"findLast",AA,eA,toReactive,arguments)},findLastIndex(AA,eA){return apply(this,"findLastIndex",AA,eA,void 0,arguments)},forEach(AA,eA){return apply(this,"forEach",AA,eA,void 0,arguments)},includes(...AA){return searchProxy(this,"includes",AA)},indexOf(...AA){return searchProxy(this,"indexOf",AA)},join(AA){return reactiveReadArray(this).join(AA)},lastIndexOf(...AA){return searchProxy(this,"lastIndexOf",AA)},map(AA,eA){return apply(this,"map",AA,eA,void 0,arguments)},pop(){return noTracking(this,"pop")},push(...AA){return noTracking(this,"push",AA)},reduce(AA,...eA){return reduce(this,"reduce",AA,eA)},reduceRight(AA,...eA){return reduce(this,"reduceRight",AA,eA)},shift(){return noTracking(this,"shift")},some(AA,eA){return apply(this,"some",AA,eA,void 0,arguments)},splice(...AA){return noTracking(this,"splice",AA)},toReversed(){return reactiveReadArray(this).toReversed()},toSorted(AA){return reactiveReadArray(this).toSorted(AA)},toSpliced(...AA){return reactiveReadArray(this).toSpliced(...AA)},unshift(...AA){return noTracking(this,"unshift",AA)},values(){return iterator(this,"values",toReactive)}};function iterator(AA,eA,tA){const nA=shallowReadArray(AA),rA=nA[eA]();return nA!==AA&&!isShallow(AA)&&(rA._next=rA.next,rA.next=()=>{const oA=rA._next();return oA.value&&(oA.value=tA(oA.value)),oA}),rA}const arrayProto=Array.prototype;function apply(AA,eA,tA,nA,rA,oA){const aA=shallowReadArray(AA),iA=aA!==AA&&!isShallow(AA),sA=aA[eA];if(sA!==arrayProto[eA]){const lA=sA.apply(AA,oA);return iA?toReactive(lA):lA}let cA=tA;aA!==AA&&(iA?cA=function(lA,gA){return tA.call(this,toReactive(lA),gA,AA)}:tA.length>2&&(cA=function(lA,gA){return tA.call(this,lA,gA,AA)}));const uA=sA.call(aA,cA,nA);return iA&&rA?rA(uA):uA}function reduce(AA,eA,tA,nA){const rA=shallowReadArray(AA);let oA=tA;return rA!==AA&&(isShallow(AA)?tA.length>3&&(oA=function(aA,iA,sA){return tA.call(this,aA,iA,sA,AA)}):oA=function(aA,iA,sA){return tA.call(this,aA,toReactive(iA),sA,AA)}),rA[eA](oA,...nA)}function searchProxy(AA,eA,tA){const nA=toRaw(AA);track(nA,"iterate",ARRAY_ITERATE_KEY);const rA=nA[eA](...tA);return(rA===-1||rA===!1)&&isProxy(tA[0])?(tA[0]=toRaw(tA[0]),nA[eA](...tA)):rA}function noTracking(AA,eA,tA=[]){pauseTracking(),startBatch();const nA=toRaw(AA)[eA].apply(AA,tA);return endBatch(),resetTracking(),nA}const isNonTrackableKeys=makeMap("__proto__,__v_isRef,__isVue"),builtInSymbols=new Set(Object.getOwnPropertyNames(Symbol).filter(AA=>AA!=="arguments"&&AA!=="caller").map(AA=>Symbol[AA]).filter(isSymbol));function hasOwnProperty(AA){isSymbol(AA)||(AA=String(AA));const eA=toRaw(this);return track(eA,"has",AA),eA.hasOwnProperty(AA)}class BaseReactiveHandler{constructor(eA=!1,tA=!1){this._isReadonly=eA,this._isShallow=tA}get(eA,tA,nA){if(tA==="__v_skip")return eA.__v_skip;const rA=this._isReadonly,oA=this._isShallow;if(tA==="__v_isReactive")return!rA;if(tA==="__v_isReadonly")return rA;if(tA==="__v_isShallow")return oA;if(tA==="__v_raw")return nA===(rA?oA?shallowReadonlyMap:readonlyMap:oA?shallowReactiveMap:reactiveMap).get(eA)||Object.getPrototypeOf(eA)===Object.getPrototypeOf(nA)?eA:void 0;const aA=isArray$1(eA);if(!rA){let sA;if(aA&&(sA=arrayInstrumentations[tA]))return sA;if(tA==="hasOwnProperty")return hasOwnProperty}const iA=Reflect.get(eA,tA,isRef(eA)?eA:nA);return(isSymbol(tA)?builtInSymbols.has(tA):isNonTrackableKeys(tA))||(rA||track(eA,"get",tA),oA)?iA:isRef(iA)?aA&&isIntegerKey(tA)?iA:iA.value:isObject$4(iA)?rA?readonly(iA):reactive(iA):iA}}class MutableReactiveHandler extends BaseReactiveHandler{constructor(eA=!1){super(!1,eA)}set(eA,tA,nA,rA){let oA=eA[tA];if(!this._isShallow){const sA=isReadonly(oA);if(!isShallow(nA)&&!isReadonly(nA)&&(oA=toRaw(oA),nA=toRaw(nA)),!isArray$1(eA)&&isRef(oA)&&!isRef(nA))return sA||(oA.value=nA),!0}const aA=isArray$1(eA)&&isIntegerKey(tA)?Number(tA)AA,getProto=AA=>Reflect.getPrototypeOf(AA);function createIterableMethod(AA,eA,tA){return function(...nA){const rA=this.__v_raw,oA=toRaw(rA),aA=isMap(oA),iA=AA==="entries"||AA===Symbol.iterator&&aA,sA=AA==="keys"&&aA,cA=rA[AA](...nA),uA=tA?toShallow:eA?toReadonly:toReactive;return!eA&&track(oA,"iterate",sA?MAP_KEY_ITERATE_KEY:ITERATE_KEY),{next(){const{value:lA,done:gA}=cA.next();return gA?{value:lA,done:gA}:{value:iA?[uA(lA[0]),uA(lA[1])]:uA(lA),done:gA}},[Symbol.iterator](){return this}}}}function createReadonlyMethod(AA){return function(...eA){return AA==="delete"?!1:AA==="clear"?void 0:this}}function createInstrumentations(AA,eA){const tA={get(rA){const oA=this.__v_raw,aA=toRaw(oA),iA=toRaw(rA);AA||(hasChanged(rA,iA)&&track(aA,"get",rA),track(aA,"get",iA));const{has:sA}=getProto(aA),cA=eA?toShallow:AA?toReadonly:toReactive;if(sA.call(aA,rA))return cA(oA.get(rA));if(sA.call(aA,iA))return cA(oA.get(iA));oA!==aA&&oA.get(rA)},get size(){const rA=this.__v_raw;return!AA&&track(toRaw(rA),"iterate",ITERATE_KEY),rA.size},has(rA){const oA=this.__v_raw,aA=toRaw(oA),iA=toRaw(rA);return AA||(hasChanged(rA,iA)&&track(aA,"has",rA),track(aA,"has",iA)),rA===iA?oA.has(rA):oA.has(rA)||oA.has(iA)},forEach(rA,oA){const aA=this,iA=aA.__v_raw,sA=toRaw(iA),cA=eA?toShallow:AA?toReadonly:toReactive;return!AA&&track(sA,"iterate",ITERATE_KEY),iA.forEach((uA,lA)=>rA.call(oA,cA(uA),cA(lA),aA))}};return extend$2(tA,AA?{add:createReadonlyMethod("add"),set:createReadonlyMethod("set"),delete:createReadonlyMethod("delete"),clear:createReadonlyMethod("clear")}:{add(rA){!eA&&!isShallow(rA)&&!isReadonly(rA)&&(rA=toRaw(rA));const oA=toRaw(this);return getProto(oA).has.call(oA,rA)||(oA.add(rA),trigger(oA,"add",rA,rA)),this},set(rA,oA){!eA&&!isShallow(oA)&&!isReadonly(oA)&&(oA=toRaw(oA));const aA=toRaw(this),{has:iA,get:sA}=getProto(aA);let cA=iA.call(aA,rA);cA||(rA=toRaw(rA),cA=iA.call(aA,rA));const uA=sA.call(aA,rA);return aA.set(rA,oA),cA?hasChanged(oA,uA)&&trigger(aA,"set",rA,oA):trigger(aA,"add",rA,oA),this},delete(rA){const oA=toRaw(this),{has:aA,get:iA}=getProto(oA);let sA=aA.call(oA,rA);sA||(rA=toRaw(rA),sA=aA.call(oA,rA)),iA&&iA.call(oA,rA);const cA=oA.delete(rA);return sA&&trigger(oA,"delete",rA,void 0),cA},clear(){const rA=toRaw(this),oA=rA.size!==0,aA=rA.clear();return oA&&trigger(rA,"clear",void 0,void 0),aA}}),["keys","values","entries",Symbol.iterator].forEach(rA=>{tA[rA]=createIterableMethod(rA,AA,eA)}),tA}function createInstrumentationGetter(AA,eA){const tA=createInstrumentations(AA,eA);return(nA,rA,oA)=>rA==="__v_isReactive"?!AA:rA==="__v_isReadonly"?AA:rA==="__v_raw"?nA:Reflect.get(hasOwn$1(tA,rA)&&rA in nA?tA:nA,rA,oA)}const mutableCollectionHandlers={get:createInstrumentationGetter(!1,!1)},shallowCollectionHandlers={get:createInstrumentationGetter(!1,!0)},readonlyCollectionHandlers={get:createInstrumentationGetter(!0,!1)},shallowReadonlyCollectionHandlers={get:createInstrumentationGetter(!0,!0)},reactiveMap=new WeakMap,shallowReactiveMap=new WeakMap,readonlyMap=new WeakMap,shallowReadonlyMap=new WeakMap;function targetTypeMap(AA){switch(AA){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function getTargetType(AA){return AA.__v_skip||!Object.isExtensible(AA)?0:targetTypeMap(toRawType(AA))}function reactive(AA){return isReadonly(AA)?AA:createReactiveObject(AA,!1,mutableHandlers,mutableCollectionHandlers,reactiveMap)}function shallowReactive(AA){return createReactiveObject(AA,!1,shallowReactiveHandlers,shallowCollectionHandlers,shallowReactiveMap)}function readonly(AA){return createReactiveObject(AA,!0,readonlyHandlers,readonlyCollectionHandlers,readonlyMap)}function shallowReadonly(AA){return createReactiveObject(AA,!0,shallowReadonlyHandlers,shallowReadonlyCollectionHandlers,shallowReadonlyMap)}function createReactiveObject(AA,eA,tA,nA,rA){if(!isObject$4(AA)||AA.__v_raw&&!(eA&&AA.__v_isReactive))return AA;const oA=getTargetType(AA);if(oA===0)return AA;const aA=rA.get(AA);if(aA)return aA;const iA=new Proxy(AA,oA===2?nA:tA);return rA.set(AA,iA),iA}function isReactive(AA){return isReadonly(AA)?isReactive(AA.__v_raw):!!(AA&&AA.__v_isReactive)}function isReadonly(AA){return!!(AA&&AA.__v_isReadonly)}function isShallow(AA){return!!(AA&&AA.__v_isShallow)}function isProxy(AA){return AA?!!AA.__v_raw:!1}function toRaw(AA){const eA=AA&&AA.__v_raw;return eA?toRaw(eA):AA}function markRaw(AA){return!hasOwn$1(AA,"__v_skip")&&Object.isExtensible(AA)&&def(AA,"__v_skip",!0),AA}const toReactive=AA=>isObject$4(AA)?reactive(AA):AA,toReadonly=AA=>isObject$4(AA)?readonly(AA):AA;function isRef(AA){return AA?AA.__v_isRef===!0:!1}function ref(AA){return createRef(AA,!1)}function shallowRef(AA){return createRef(AA,!0)}function createRef(AA,eA){return isRef(AA)?AA:new RefImpl(AA,eA)}class RefImpl{constructor(eA,tA){this.dep=new Dep,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=tA?eA:toRaw(eA),this._value=tA?eA:toReactive(eA),this.__v_isShallow=tA}get value(){return this.dep.track(),this._value}set value(eA){const tA=this._rawValue,nA=this.__v_isShallow||isShallow(eA)||isReadonly(eA);eA=nA?eA:toRaw(eA),hasChanged(eA,tA)&&(this._rawValue=eA,this._value=nA?eA:toReactive(eA),this.dep.trigger())}}function triggerRef(AA){AA.dep&&AA.dep.trigger()}function unref(AA){return isRef(AA)?AA.value:AA}function toValue(AA){return isFunction$2(AA)?AA():unref(AA)}const shallowUnwrapHandlers={get:(AA,eA,tA)=>eA==="__v_raw"?AA:unref(Reflect.get(AA,eA,tA)),set:(AA,eA,tA,nA)=>{const rA=AA[eA];return isRef(rA)&&!isRef(tA)?(rA.value=tA,!0):Reflect.set(AA,eA,tA,nA)}};function proxyRefs(AA){return isReactive(AA)?AA:new Proxy(AA,shallowUnwrapHandlers)}class CustomRefImpl{constructor(eA){this.__v_isRef=!0,this._value=void 0;const tA=this.dep=new Dep,{get:nA,set:rA}=eA(tA.track.bind(tA),tA.trigger.bind(tA));this._get=nA,this._set=rA}get value(){return this._value=this._get()}set value(eA){this._set(eA)}}function customRef(AA){return new CustomRefImpl(AA)}function toRefs(AA){const eA=isArray$1(AA)?new Array(AA.length):{};for(const tA in AA)eA[tA]=propertyToRef(AA,tA);return eA}class ObjectRefImpl{constructor(eA,tA,nA){this._object=eA,this._key=tA,this._defaultValue=nA,this.__v_isRef=!0,this._value=void 0}get value(){const eA=this._object[this._key];return this._value=eA===void 0?this._defaultValue:eA}set value(eA){this._object[this._key]=eA}get dep(){return getDepFromReactive(toRaw(this._object),this._key)}}class GetterRefImpl{constructor(eA){this._getter=eA,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function toRef$1(AA,eA,tA){return isRef(AA)?AA:isFunction$2(AA)?new GetterRefImpl(AA):isObject$4(AA)&&arguments.length>1?propertyToRef(AA,eA,tA):ref(AA)}function propertyToRef(AA,eA,tA){const nA=AA[eA];return isRef(nA)?nA:new ObjectRefImpl(AA,eA,tA)}class ComputedRefImpl{constructor(eA,tA,nA){this.fn=eA,this.setter=tA,this._value=void 0,this.dep=new Dep(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=globalVersion-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!tA,this.isSSR=nA}notify(){if(this.flags|=16,!(this.flags&8)&&activeSub!==this)return batch(this,!0),!0}get value(){const eA=this.dep.track();return refreshComputed(this),eA&&(eA.version=this.dep.version),this._value}set value(eA){this.setter&&this.setter(eA)}}function computed$1(AA,eA,tA=!1){let nA,rA;return isFunction$2(AA)?nA=AA:(nA=AA.get,rA=AA.set),new ComputedRefImpl(nA,rA,tA)}const TrackOpTypes={GET:"get",HAS:"has",ITERATE:"iterate"},TriggerOpTypes={SET:"set",ADD:"add",DELETE:"delete",CLEAR:"clear"},INITIAL_WATCHER_VALUE={},cleanupMap=new WeakMap;let activeWatcher;function getCurrentWatcher(){return activeWatcher}function onWatcherCleanup(AA,eA=!1,tA=activeWatcher){if(tA){let nA=cleanupMap.get(tA);nA||cleanupMap.set(tA,nA=[]),nA.push(AA)}}function watch$2(AA,eA,tA=EMPTY_OBJ){const{immediate:nA,deep:rA,once:oA,scheduler:aA,augmentJob:iA,call:sA}=tA,cA=EA=>rA?EA:isShallow(EA)||rA===!1||rA===0?traverse(EA,1):traverse(EA);let uA,lA,gA,QA,dA=!1,fA=!1;if(isRef(AA)?(lA=()=>AA.value,dA=isShallow(AA)):isReactive(AA)?(lA=()=>cA(AA),dA=!0):isArray$1(AA)?(fA=!0,dA=AA.some(EA=>isReactive(EA)||isShallow(EA)),lA=()=>AA.map(EA=>{if(isRef(EA))return EA.value;if(isReactive(EA))return cA(EA);if(isFunction$2(EA))return sA?sA(EA,2):EA()})):isFunction$2(AA)?eA?lA=sA?()=>sA(AA,2):AA:lA=()=>{if(gA){pauseTracking();try{gA()}finally{resetTracking()}}const EA=activeWatcher;activeWatcher=uA;try{return sA?sA(AA,3,[QA]):AA(QA)}finally{activeWatcher=EA}}:lA=NOOP,eA&&rA){const EA=lA,BA=rA===!0?1/0:rA;lA=()=>traverse(EA(),BA)}const hA=getCurrentScope(),TA=()=>{uA.stop(),hA&&hA.active&&remove$1(hA.effects,uA)};if(oA&&eA){const EA=eA;eA=(...BA)=>{EA(...BA),TA()}}let pA=fA?new Array(AA.length).fill(INITIAL_WATCHER_VALUE):INITIAL_WATCHER_VALUE;const mA=EA=>{if(!(!(uA.flags&1)||!uA.dirty&&!EA))if(eA){const BA=uA.run();if(rA||dA||(fA?BA.some((CA,IA)=>hasChanged(CA,pA[IA])):hasChanged(BA,pA))){gA&&gA();const CA=activeWatcher;activeWatcher=uA;try{const IA=[BA,pA===INITIAL_WATCHER_VALUE?void 0:fA&&pA[0]===INITIAL_WATCHER_VALUE?[]:pA,QA];pA=BA,sA?sA(eA,3,IA):eA(...IA)}finally{activeWatcher=CA}}}else uA.run()};return iA&&iA(mA),uA=new ReactiveEffect(lA),uA.scheduler=aA?()=>aA(mA,!1):mA,QA=EA=>onWatcherCleanup(EA,!1,uA),gA=uA.onStop=()=>{const EA=cleanupMap.get(uA);if(EA){if(sA)sA(EA,4);else for(const BA of EA)BA();cleanupMap.delete(uA)}},eA?nA?mA(!0):pA=uA.run():aA?aA(mA.bind(null,!0),!0):uA.run(),TA.pause=uA.pause.bind(uA),TA.resume=uA.resume.bind(uA),TA.stop=TA,TA}function traverse(AA,eA=1/0,tA){if(eA<=0||!isObject$4(AA)||AA.__v_skip||(tA=tA||new Map,(tA.get(AA)||0)>=eA))return AA;if(tA.set(AA,eA),eA--,isRef(AA))traverse(AA.value,eA,tA);else if(isArray$1(AA))for(let nA=0;nA{traverse(nA,eA,tA)});else if(isPlainObject(AA)){for(const nA in AA)traverse(AA[nA],eA,tA);for(const nA of Object.getOwnPropertySymbols(AA))Object.prototype.propertyIsEnumerable.call(AA,nA)&&traverse(AA[nA],eA,tA)}return AA}/** +* @vue/runtime-core v3.5.21 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/const stack$1=[];function pushWarningContext(AA){stack$1.push(AA)}function popWarningContext(){stack$1.pop()}let isWarning=!1;function warn$1(AA,...eA){if(isWarning)return;isWarning=!0,pauseTracking();const tA=stack$1.length?stack$1[stack$1.length-1].component:null,nA=tA&&tA.appContext.config.warnHandler,rA=getComponentTrace();if(nA)callWithErrorHandling(nA,tA,11,[AA+eA.map(oA=>{var aA,iA;return(iA=(aA=oA.toString)==null?void 0:aA.call(oA))!=null?iA:JSON.stringify(oA)}).join(""),tA&&tA.proxy,rA.map(({vnode:oA})=>`at <${formatComponentName(tA,oA.type)}>`).join(` +`),rA]);else{const oA=[`[Vue warn]: ${AA}`,...eA];rA.length&&oA.push(` +`,...formatTrace(rA)),console.warn(...oA)}resetTracking(),isWarning=!1}function getComponentTrace(){let AA=stack$1[stack$1.length-1];if(!AA)return[];const eA=[];for(;AA;){const tA=eA[0];tA&&tA.vnode===AA?tA.recurseCount++:eA.push({vnode:AA,recurseCount:0});const nA=AA.component&&AA.component.parent;AA=nA&&nA.vnode}return eA}function formatTrace(AA){const eA=[];return AA.forEach((tA,nA)=>{eA.push(...nA===0?[]:[` +`],...formatTraceEntry(tA))}),eA}function formatTraceEntry({vnode:AA,recurseCount:eA}){const tA=eA>0?`... (${eA} recursive calls)`:"",nA=AA.component?AA.component.parent==null:!1,rA=` at <${formatComponentName(AA.component,AA.type,nA)}`,oA=">"+tA;return AA.props?[rA,...formatProps(AA.props),oA]:[rA+oA]}function formatProps(AA){const eA=[],tA=Object.keys(AA);return tA.slice(0,3).forEach(nA=>{eA.push(...formatProp(nA,AA[nA]))}),tA.length>3&&eA.push(" ..."),eA}function formatProp(AA,eA,tA){return isString$2(eA)?(eA=JSON.stringify(eA),tA?eA:[`${AA}=${eA}`]):typeof eA=="number"||typeof eA=="boolean"||eA==null?tA?eA:[`${AA}=${eA}`]:isRef(eA)?(eA=formatProp(AA,toRaw(eA.value),!0),tA?eA:[`${AA}=Ref<`,eA,">"]):isFunction$2(eA)?[`${AA}=fn${eA.name?`<${eA.name}>`:""}`]:(eA=toRaw(eA),tA?eA:[`${AA}=`,eA])}function assertNumber(AA,eA){}const ErrorCodes={SETUP_FUNCTION:0,0:"SETUP_FUNCTION",RENDER_FUNCTION:1,1:"RENDER_FUNCTION",NATIVE_EVENT_HANDLER:5,5:"NATIVE_EVENT_HANDLER",COMPONENT_EVENT_HANDLER:6,6:"COMPONENT_EVENT_HANDLER",VNODE_HOOK:7,7:"VNODE_HOOK",DIRECTIVE_HOOK:8,8:"DIRECTIVE_HOOK",TRANSITION_HOOK:9,9:"TRANSITION_HOOK",APP_ERROR_HANDLER:10,10:"APP_ERROR_HANDLER",APP_WARN_HANDLER:11,11:"APP_WARN_HANDLER",FUNCTION_REF:12,12:"FUNCTION_REF",ASYNC_COMPONENT_LOADER:13,13:"ASYNC_COMPONENT_LOADER",SCHEDULER:14,14:"SCHEDULER",COMPONENT_UPDATE:15,15:"COMPONENT_UPDATE",APP_UNMOUNT_CLEANUP:16,16:"APP_UNMOUNT_CLEANUP"},ErrorTypeStrings$1={sp:"serverPrefetch hook",bc:"beforeCreate hook",c:"created hook",bm:"beforeMount hook",m:"mounted hook",bu:"beforeUpdate hook",u:"updated",bum:"beforeUnmount hook",um:"unmounted hook",a:"activated hook",da:"deactivated hook",ec:"errorCaptured hook",rtc:"renderTracked hook",rtg:"renderTriggered hook",0:"setup function",1:"render function",2:"watcher getter",3:"watcher callback",4:"watcher cleanup function",5:"native event handler",6:"component event handler",7:"vnode hook",8:"directive hook",9:"transition hook",10:"app errorHandler",11:"app warnHandler",12:"ref function",13:"async component loader",14:"scheduler flush",15:"component update",16:"app unmount cleanup function"};function callWithErrorHandling(AA,eA,tA,nA){try{return nA?AA(...nA):AA()}catch(rA){handleError(rA,eA,tA)}}function callWithAsyncErrorHandling(AA,eA,tA,nA){if(isFunction$2(AA)){const rA=callWithErrorHandling(AA,eA,tA,nA);return rA&&isPromise(rA)&&rA.catch(oA=>{handleError(oA,eA,tA)}),rA}if(isArray$1(AA)){const rA=[];for(let oA=0;oA>>1,rA=queue[nA],oA=getId(rA);oA=getId(tA)?queue.push(AA):queue.splice(findInsertionIndex(eA),0,AA),AA.flags|=1,queueFlush()}}function queueFlush(){currentFlushPromise||(currentFlushPromise=resolvedPromise.then(flushJobs))}function queuePostFlushCb(AA){isArray$1(AA)?pendingPostFlushCbs.push(...AA):activePostFlushCbs&&AA.id===-1?activePostFlushCbs.splice(postFlushIndex+1,0,AA):AA.flags&1||(pendingPostFlushCbs.push(AA),AA.flags|=1),queueFlush()}function flushPreFlushCbs(AA,eA,tA=flushIndex+1){for(;tAgetId(tA)-getId(nA));if(pendingPostFlushCbs.length=0,activePostFlushCbs){activePostFlushCbs.push(...eA);return}for(activePostFlushCbs=eA,postFlushIndex=0;postFlushIndexAA.id==null?AA.flags&2?-1:1/0:AA.id;function flushJobs(AA){try{for(flushIndex=0;flushIndexdevtools$1.emit(rA,...oA)),buffer=[]):typeof window<"u"&&window.HTMLElement&&!((nA=(tA=window.navigator)==null?void 0:tA.userAgent)!=null&&nA.includes("jsdom"))?((eA.__VUE_DEVTOOLS_HOOK_REPLAY__=eA.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push(oA=>{setDevtoolsHook$1(oA,eA)}),setTimeout(()=>{devtools$1||(eA.__VUE_DEVTOOLS_HOOK_REPLAY__=null,buffer=[])},3e3)):buffer=[]}let currentRenderingInstance=null,currentScopeId=null;function setCurrentRenderingInstance(AA){const eA=currentRenderingInstance;return currentRenderingInstance=AA,currentScopeId=AA&&AA.type.__scopeId||null,eA}function pushScopeId(AA){currentScopeId=AA}function popScopeId(){currentScopeId=null}const withScopeId=AA=>withCtx;function withCtx(AA,eA=currentRenderingInstance,tA){if(!eA||AA._n)return AA;const nA=(...rA)=>{nA._d&&setBlockTracking(-1);const oA=setCurrentRenderingInstance(eA);let aA;try{aA=AA(...rA)}finally{setCurrentRenderingInstance(oA),nA._d&&setBlockTracking(1)}return aA};return nA._n=!0,nA._c=!0,nA._d=!0,nA}function withDirectives(AA,eA){if(currentRenderingInstance===null)return AA;const tA=getComponentPublicInstance(currentRenderingInstance),nA=AA.dirs||(AA.dirs=[]);for(let rA=0;rAAA.__isTeleport,isTeleportDisabled=AA=>AA&&(AA.disabled||AA.disabled===""),isTeleportDeferred=AA=>AA&&(AA.defer||AA.defer===""),isTargetSVG=AA=>typeof SVGElement<"u"&&AA instanceof SVGElement,isTargetMathML=AA=>typeof MathMLElement=="function"&&AA instanceof MathMLElement,resolveTarget=(AA,eA)=>{const tA=AA&&AA.to;return isString$2(tA)?eA?eA(tA):null:tA},TeleportImpl={name:"Teleport",__isTeleport:!0,process(AA,eA,tA,nA,rA,oA,aA,iA,sA,cA){const{mc:uA,pc:lA,pbc:gA,o:{insert:QA,querySelector:dA,createText:fA,createComment:hA}}=cA,TA=isTeleportDisabled(eA.props);let{shapeFlag:pA,children:mA,dynamicChildren:EA}=eA;if(AA==null){const BA=eA.el=fA(""),CA=eA.anchor=fA("");QA(BA,tA,nA),QA(CA,tA,nA);const IA=(_A,DA)=>{pA&16&&(rA&&rA.isCE&&(rA.ce._teleportTarget=_A),uA(mA,_A,DA,rA,oA,aA,iA,sA))},yA=()=>{const _A=eA.target=resolveTarget(eA.props,dA),DA=prepareAnchor(_A,eA,fA,QA);_A&&(aA!=="svg"&&isTargetSVG(_A)?aA="svg":aA!=="mathml"&&isTargetMathML(_A)&&(aA="mathml"),TA||(IA(_A,DA),updateCssVars(eA,!1)))};TA&&(IA(tA,CA),updateCssVars(eA,!0)),isTeleportDeferred(eA.props)?(eA.el.__isMounted=!1,queuePostRenderEffect(()=>{yA(),delete eA.el.__isMounted},oA)):yA()}else{if(isTeleportDeferred(eA.props)&&AA.el.__isMounted===!1){queuePostRenderEffect(()=>{TeleportImpl.process(AA,eA,tA,nA,rA,oA,aA,iA,sA,cA)},oA);return}eA.el=AA.el,eA.targetStart=AA.targetStart;const BA=eA.anchor=AA.anchor,CA=eA.target=AA.target,IA=eA.targetAnchor=AA.targetAnchor,yA=isTeleportDisabled(AA.props),_A=yA?tA:CA,DA=yA?BA:IA;if(aA==="svg"||isTargetSVG(CA)?aA="svg":(aA==="mathml"||isTargetMathML(CA))&&(aA="mathml"),EA?(gA(AA.dynamicChildren,EA,_A,rA,oA,aA,iA),traverseStaticChildren(AA,eA,!0)):sA||lA(AA,eA,_A,DA,rA,oA,aA,iA,!1),TA)yA?eA.props&&AA.props&&eA.props.to!==AA.props.to&&(eA.props.to=AA.props.to):moveTeleport(eA,tA,BA,cA,1);else if((eA.props&&eA.props.to)!==(AA.props&&AA.props.to)){const HA=eA.target=resolveTarget(eA.props,dA);HA&&moveTeleport(eA,HA,null,cA,0)}else yA&&moveTeleport(eA,CA,IA,cA,1);updateCssVars(eA,TA)}},remove(AA,eA,tA,{um:nA,o:{remove:rA}},oA){const{shapeFlag:aA,children:iA,anchor:sA,targetStart:cA,targetAnchor:uA,target:lA,props:gA}=AA;if(lA&&(rA(cA),rA(uA)),oA&&rA(sA),aA&16){const QA=oA||!isTeleportDisabled(gA);for(let dA=0;dA{AA.isMounted=!0}),onBeforeUnmount(()=>{AA.isUnmounting=!0}),AA}const TransitionHookValidator=[Function,Array],BaseTransitionPropsValidators={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:TransitionHookValidator,onEnter:TransitionHookValidator,onAfterEnter:TransitionHookValidator,onEnterCancelled:TransitionHookValidator,onBeforeLeave:TransitionHookValidator,onLeave:TransitionHookValidator,onAfterLeave:TransitionHookValidator,onLeaveCancelled:TransitionHookValidator,onBeforeAppear:TransitionHookValidator,onAppear:TransitionHookValidator,onAfterAppear:TransitionHookValidator,onAppearCancelled:TransitionHookValidator},recursiveGetSubtree=AA=>{const eA=AA.subTree;return eA.component?recursiveGetSubtree(eA.component):eA},BaseTransitionImpl={name:"BaseTransition",props:BaseTransitionPropsValidators,setup(AA,{slots:eA}){const tA=getCurrentInstance(),nA=useTransitionState();return()=>{const rA=eA.default&&getTransitionRawChildren(eA.default(),!0);if(!rA||!rA.length)return;const oA=findNonCommentChild(rA),aA=toRaw(AA),{mode:iA}=aA;if(nA.isLeaving)return emptyPlaceholder(oA);const sA=getInnerChild$1(oA);if(!sA)return emptyPlaceholder(oA);let cA=resolveTransitionHooks(sA,aA,nA,tA,lA=>cA=lA);sA.type!==Comment$1&&setTransitionHooks(sA,cA);let uA=tA.subTree&&getInnerChild$1(tA.subTree);if(uA&&uA.type!==Comment$1&&!isSameVNodeType(uA,sA)&&recursiveGetSubtree(tA).type!==Comment$1){let lA=resolveTransitionHooks(uA,aA,nA,tA);if(setTransitionHooks(uA,lA),iA==="out-in"&&sA.type!==Comment$1)return nA.isLeaving=!0,lA.afterLeave=()=>{nA.isLeaving=!1,tA.job.flags&8||tA.update(),delete lA.afterLeave,uA=void 0},emptyPlaceholder(oA);iA==="in-out"&&sA.type!==Comment$1?lA.delayLeave=(gA,QA,dA)=>{const fA=getLeavingNodesForType(nA,uA);fA[String(uA.key)]=uA,gA[leaveCbKey]=()=>{QA(),gA[leaveCbKey]=void 0,delete cA.delayedLeave,uA=void 0},cA.delayedLeave=()=>{dA(),delete cA.delayedLeave,uA=void 0}}:uA=void 0}else uA&&(uA=void 0);return oA}}};function findNonCommentChild(AA){let eA=AA[0];if(AA.length>1){for(const tA of AA)if(tA.type!==Comment$1){eA=tA;break}}return eA}const BaseTransition=BaseTransitionImpl;function getLeavingNodesForType(AA,eA){const{leavingVNodes:tA}=AA;let nA=tA.get(eA.type);return nA||(nA=Object.create(null),tA.set(eA.type,nA)),nA}function resolveTransitionHooks(AA,eA,tA,nA,rA){const{appear:oA,mode:aA,persisted:iA=!1,onBeforeEnter:sA,onEnter:cA,onAfterEnter:uA,onEnterCancelled:lA,onBeforeLeave:gA,onLeave:QA,onAfterLeave:dA,onLeaveCancelled:fA,onBeforeAppear:hA,onAppear:TA,onAfterAppear:pA,onAppearCancelled:mA}=eA,EA=String(AA.key),BA=getLeavingNodesForType(tA,AA),CA=(_A,DA)=>{_A&&callWithAsyncErrorHandling(_A,nA,9,DA)},IA=(_A,DA)=>{const HA=DA[1];CA(_A,DA),isArray$1(_A)?_A.every(MA=>MA.length<=1)&&HA():_A.length<=1&&HA()},yA={mode:aA,persisted:iA,beforeEnter(_A){let DA=sA;if(!tA.isMounted)if(oA)DA=hA||sA;else return;_A[leaveCbKey]&&_A[leaveCbKey](!0);const HA=BA[EA];HA&&isSameVNodeType(AA,HA)&&HA.el[leaveCbKey]&&HA.el[leaveCbKey](),CA(DA,[_A])},enter(_A){let DA=cA,HA=uA,MA=lA;if(!tA.isMounted)if(oA)DA=TA||cA,HA=pA||uA,MA=mA||lA;else return;let xA=!1;const SA=_A[enterCbKey$1]=OA=>{xA||(xA=!0,OA?CA(MA,[_A]):CA(HA,[_A]),yA.delayedLeave&&yA.delayedLeave(),_A[enterCbKey$1]=void 0)};DA?IA(DA,[_A,SA]):SA()},leave(_A,DA){const HA=String(AA.key);if(_A[enterCbKey$1]&&_A[enterCbKey$1](!0),tA.isUnmounting)return DA();CA(gA,[_A]);let MA=!1;const xA=_A[leaveCbKey]=SA=>{MA||(MA=!0,DA(),SA?CA(fA,[_A]):CA(dA,[_A]),_A[leaveCbKey]=void 0,BA[HA]===AA&&delete BA[HA])};BA[HA]=AA,QA?IA(QA,[_A,xA]):xA()},clone(_A){const DA=resolveTransitionHooks(_A,eA,tA,nA,rA);return rA&&rA(DA),DA}};return yA}function emptyPlaceholder(AA){if(isKeepAlive(AA))return AA=cloneVNode(AA),AA.children=null,AA}function getInnerChild$1(AA){if(!isKeepAlive(AA))return isTeleport(AA.type)&&AA.children?findNonCommentChild(AA.children):AA;if(AA.component)return AA.component.subTree;const{shapeFlag:eA,children:tA}=AA;if(tA){if(eA&16)return tA[0];if(eA&32&&isFunction$2(tA.default))return tA.default()}}function setTransitionHooks(AA,eA){AA.shapeFlag&6&&AA.component?(AA.transition=eA,setTransitionHooks(AA.component.subTree,eA)):AA.shapeFlag&128?(AA.ssContent.transition=eA.clone(AA.ssContent),AA.ssFallback.transition=eA.clone(AA.ssFallback)):AA.transition=eA}function getTransitionRawChildren(AA,eA=!1,tA){let nA=[],rA=0;for(let oA=0;oA1)for(let oA=0;oAtA.value,set:oA=>tA.value=oA})}return tA}const pendingSetRefMap=new WeakMap;function setRef(AA,eA,tA,nA,rA=!1){if(isArray$1(AA)){AA.forEach((dA,fA)=>setRef(dA,eA&&(isArray$1(eA)?eA[fA]:eA),tA,nA,rA));return}if(isAsyncWrapper(nA)&&!rA){nA.shapeFlag&512&&nA.type.__asyncResolved&&nA.component.subTree.component&&setRef(AA,eA,tA,nA.component.subTree);return}const oA=nA.shapeFlag&4?getComponentPublicInstance(nA.component):nA.el,aA=rA?null:oA,{i:iA,r:sA}=AA,cA=eA&&eA.r,uA=iA.refs===EMPTY_OBJ?iA.refs={}:iA.refs,lA=iA.setupState,gA=toRaw(lA),QA=lA===EMPTY_OBJ?NO:dA=>hasOwn$1(gA,dA);if(cA!=null&&cA!==sA){if(invalidatePendingSetRef(eA),isString$2(cA))uA[cA]=null,QA(cA)&&(lA[cA]=null);else if(isRef(cA)){cA.value=null;const dA=eA;dA.k&&(uA[dA.k]=null)}}if(isFunction$2(sA))callWithErrorHandling(sA,iA,12,[aA,uA]);else{const dA=isString$2(sA),fA=isRef(sA);if(dA||fA){const hA=()=>{if(AA.f){const TA=dA?QA(sA)?lA[sA]:uA[sA]:sA.value;if(rA)isArray$1(TA)&&remove$1(TA,oA);else if(isArray$1(TA))TA.includes(oA)||TA.push(oA);else if(dA)uA[sA]=[oA],QA(sA)&&(lA[sA]=uA[sA]);else{const pA=[oA];sA.value=pA,AA.k&&(uA[AA.k]=pA)}}else dA?(uA[sA]=aA,QA(sA)&&(lA[sA]=aA)):fA&&(sA.value=aA,AA.k&&(uA[AA.k]=aA))};if(aA){const TA=()=>{hA(),pendingSetRefMap.delete(AA)};TA.id=-1,pendingSetRefMap.set(AA,TA),queuePostRenderEffect(TA,tA)}else invalidatePendingSetRef(AA),hA()}}}function invalidatePendingSetRef(AA){const eA=pendingSetRefMap.get(AA);eA&&(eA.flags|=8,pendingSetRefMap.delete(AA))}let hasLoggedMismatchError=!1;const logMismatchError=()=>{hasLoggedMismatchError||(console.error("Hydration completed but contains mismatches."),hasLoggedMismatchError=!0)},isSVGContainer=AA=>AA.namespaceURI.includes("svg")&&AA.tagName!=="foreignObject",isMathMLContainer=AA=>AA.namespaceURI.includes("MathML"),getContainerType=AA=>{if(AA.nodeType===1){if(isSVGContainer(AA))return"svg";if(isMathMLContainer(AA))return"mathml"}},isComment=AA=>AA.nodeType===8;function createHydrationFunctions(AA){const{mt:eA,p:tA,o:{patchProp:nA,createText:rA,nextSibling:oA,parentNode:aA,remove:iA,insert:sA,createComment:cA}}=AA,uA=(mA,EA)=>{if(!EA.hasChildNodes()){tA(null,mA,EA),flushPostFlushCbs(),EA._vnode=mA;return}lA(EA.firstChild,mA,null,null,null),flushPostFlushCbs(),EA._vnode=mA},lA=(mA,EA,BA,CA,IA,yA=!1)=>{yA=yA||!!EA.dynamicChildren;const _A=isComment(mA)&&mA.data==="[",DA=()=>fA(mA,EA,BA,CA,IA,_A),{type:HA,ref:MA,shapeFlag:xA,patchFlag:SA}=EA;let OA=mA.nodeType;EA.el=mA,SA===-2&&(yA=!1,EA.dynamicChildren=null);let FA=null;switch(HA){case Text$2:OA!==3?EA.children===""?(sA(EA.el=rA(""),aA(mA),mA),FA=mA):FA=DA():(mA.data!==EA.children&&(logMismatchError(),mA.data=EA.children),FA=oA(mA));break;case Comment$1:pA(mA)?(FA=oA(mA),TA(EA.el=mA.content.firstChild,mA,BA)):OA!==8||_A?FA=DA():FA=oA(mA);break;case Static:if(_A&&(mA=oA(mA),OA=mA.nodeType),OA===1||OA===3){FA=mA;const RA=!EA.children.length;for(let $A=0;$A{yA=yA||!!EA.dynamicChildren;const{type:_A,props:DA,patchFlag:HA,shapeFlag:MA,dirs:xA,transition:SA}=EA,OA=_A==="input"||_A==="option";if(OA||HA!==-1){xA&&invokeDirectiveHook(EA,null,BA,"created");let FA=!1;if(pA(mA)){FA=needTransition(null,SA)&&BA&&BA.vnode.props&&BA.vnode.props.appear;const $A=mA.content.firstChild;if(FA){const YA=$A.getAttribute("class");YA&&($A.$cls=YA),SA.beforeEnter($A)}TA($A,mA,BA),EA.el=mA=$A}if(MA&16&&!(DA&&(DA.innerHTML||DA.textContent))){let $A=QA(mA.firstChild,EA,mA,BA,CA,IA,yA);for(;$A;){isMismatchAllowed(mA,1)||logMismatchError();const YA=$A;$A=$A.nextSibling,iA(YA)}}else if(MA&8){let $A=EA.children;$A[0]===` +`&&(mA.tagName==="PRE"||mA.tagName==="TEXTAREA")&&($A=$A.slice(1)),mA.textContent!==$A&&(isMismatchAllowed(mA,0)||logMismatchError(),mA.textContent=EA.children)}if(DA){if(OA||!yA||HA&48){const $A=mA.tagName.includes("-");for(const YA in DA)(OA&&(YA.endsWith("value")||YA==="indeterminate")||isOn(YA)&&!isReservedProp(YA)||YA[0]==="."||$A)&&nA(mA,YA,null,DA[YA],void 0,BA)}else if(DA.onClick)nA(mA,"onClick",null,DA.onClick,void 0,BA);else if(HA&4&&isReactive(DA.style))for(const $A in DA.style)DA.style[$A]}let RA;(RA=DA&&DA.onVnodeBeforeMount)&&invokeVNodeHook(RA,BA,EA),xA&&invokeDirectiveHook(EA,null,BA,"beforeMount"),((RA=DA&&DA.onVnodeMounted)||xA||FA)&&queueEffectWithSuspense(()=>{RA&&invokeVNodeHook(RA,BA,EA),FA&&SA.enter(mA),xA&&invokeDirectiveHook(EA,null,BA,"mounted")},CA)}return mA.nextSibling},QA=(mA,EA,BA,CA,IA,yA,_A)=>{_A=_A||!!EA.dynamicChildren;const DA=EA.children,HA=DA.length;for(let MA=0;MA{const{slotScopeIds:_A}=EA;_A&&(IA=IA?IA.concat(_A):_A);const DA=aA(mA),HA=QA(oA(mA),EA,DA,BA,CA,IA,yA);return HA&&isComment(HA)&&HA.data==="]"?oA(EA.anchor=HA):(logMismatchError(),sA(EA.anchor=cA("]"),DA,HA),HA)},fA=(mA,EA,BA,CA,IA,yA)=>{if(isMismatchAllowed(mA.parentElement,1)||logMismatchError(),EA.el=null,yA){const HA=hA(mA);for(;;){const MA=oA(mA);if(MA&&MA!==HA)iA(MA);else break}}const _A=oA(mA),DA=aA(mA);return iA(mA),tA(null,EA,DA,_A,BA,CA,getContainerType(DA),IA),BA&&(BA.vnode.el=EA.el,updateHOCHostEl(BA,EA.el)),_A},hA=(mA,EA="[",BA="]")=>{let CA=0;for(;mA;)if(mA=oA(mA),mA&&isComment(mA)&&(mA.data===EA&&CA++,mA.data===BA)){if(CA===0)return oA(mA);CA--}return mA},TA=(mA,EA,BA)=>{const CA=EA.parentNode;CA&&CA.replaceChild(mA,EA);let IA=BA;for(;IA;)IA.vnode.el===EA&&(IA.vnode.el=IA.subTree.el=mA),IA=IA.parent},pA=mA=>mA.nodeType===1&&mA.tagName==="TEMPLATE";return[uA,lA]}const allowMismatchAttr="data-allow-mismatch",MismatchTypeString={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function isMismatchAllowed(AA,eA){if(eA===0||eA===1)for(;AA&&!AA.hasAttribute(allowMismatchAttr);)AA=AA.parentElement;const tA=AA&&AA.getAttribute(allowMismatchAttr);if(tA==null)return!1;if(tA==="")return!0;{const nA=tA.split(",");return eA===0&&nA.includes("children")?!0:nA.includes(MismatchTypeString[eA])}}const requestIdleCallback=getGlobalThis().requestIdleCallback||(AA=>setTimeout(AA,1)),cancelIdleCallback=getGlobalThis().cancelIdleCallback||(AA=>clearTimeout(AA)),hydrateOnIdle=(AA=1e4)=>eA=>{const tA=requestIdleCallback(eA,{timeout:AA});return()=>cancelIdleCallback(tA)};function elementIsVisibleInViewport(AA){const{top:eA,left:tA,bottom:nA,right:rA}=AA.getBoundingClientRect(),{innerHeight:oA,innerWidth:aA}=window;return(eA>0&&eA0&&nA0&&tA0&&rA(eA,tA)=>{const nA=new IntersectionObserver(rA=>{for(const oA of rA)if(oA.isIntersecting){nA.disconnect(),eA();break}},AA);return tA(rA=>{if(rA instanceof Element){if(elementIsVisibleInViewport(rA))return eA(),nA.disconnect(),!1;nA.observe(rA)}}),()=>nA.disconnect()},hydrateOnMediaQuery=AA=>eA=>{if(AA){const tA=matchMedia(AA);if(tA.matches)eA();else return tA.addEventListener("change",eA,{once:!0}),()=>tA.removeEventListener("change",eA)}},hydrateOnInteraction=(AA=[])=>(eA,tA)=>{isString$2(AA)&&(AA=[AA]);let nA=!1;const rA=aA=>{nA||(nA=!0,oA(),eA(),aA.target.dispatchEvent(new aA.constructor(aA.type,aA)))},oA=()=>{tA(aA=>{for(const iA of AA)aA.removeEventListener(iA,rA)})};return tA(aA=>{for(const iA of AA)aA.addEventListener(iA,rA,{once:!0})}),oA};function forEachElement(AA,eA){if(isComment(AA)&&AA.data==="["){let tA=1,nA=AA.nextSibling;for(;nA;){if(nA.nodeType===1){if(eA(nA)===!1)break}else if(isComment(nA))if(nA.data==="]"){if(--tA===0)break}else nA.data==="["&&tA++;nA=nA.nextSibling}}else eA(AA)}const isAsyncWrapper=AA=>!!AA.type.__asyncLoader;function defineAsyncComponent(AA){isFunction$2(AA)&&(AA={loader:AA});const{loader:eA,loadingComponent:tA,errorComponent:nA,delay:rA=200,hydrate:oA,timeout:aA,suspensible:iA=!0,onError:sA}=AA;let cA=null,uA,lA=0;const gA=()=>(lA++,cA=null,QA()),QA=()=>{let dA;return cA||(dA=cA=eA().catch(fA=>{if(fA=fA instanceof Error?fA:new Error(String(fA)),sA)return new Promise((hA,TA)=>{sA(fA,()=>hA(gA()),()=>TA(fA),lA+1)});throw fA}).then(fA=>dA!==cA&&cA?cA:(fA&&(fA.__esModule||fA[Symbol.toStringTag]==="Module")&&(fA=fA.default),uA=fA,fA)))};return defineComponent({name:"AsyncComponentWrapper",__asyncLoader:QA,__asyncHydrate(dA,fA,hA){let TA=!1;(fA.bu||(fA.bu=[])).push(()=>TA=!0);const pA=()=>{TA||hA()},mA=oA?()=>{const EA=oA(pA,BA=>forEachElement(dA,BA));EA&&(fA.bum||(fA.bum=[])).push(EA)}:pA;uA?mA():QA().then(()=>!fA.isUnmounted&&mA())},get __asyncResolved(){return uA},setup(){const dA=currentInstance;if(markAsyncBoundary(dA),uA)return()=>createInnerComp(uA,dA);const fA=mA=>{cA=null,handleError(mA,dA,13,!nA)};if(iA&&dA.suspense||isInSSRComponentSetup)return QA().then(mA=>()=>createInnerComp(mA,dA)).catch(mA=>(fA(mA),()=>nA?createVNode(nA,{error:mA}):null));const hA=ref(!1),TA=ref(),pA=ref(!!rA);return rA&&setTimeout(()=>{pA.value=!1},rA),aA!=null&&setTimeout(()=>{if(!hA.value&&!TA.value){const mA=new Error(`Async component timed out after ${aA}ms.`);fA(mA),TA.value=mA}},aA),QA().then(()=>{hA.value=!0,dA.parent&&isKeepAlive(dA.parent.vnode)&&dA.parent.update()}).catch(mA=>{fA(mA),TA.value=mA}),()=>{if(hA.value&&uA)return createInnerComp(uA,dA);if(TA.value&&nA)return createVNode(nA,{error:TA.value});if(tA&&!pA.value)return createVNode(tA)}}})}function createInnerComp(AA,eA){const{ref:tA,props:nA,children:rA,ce:oA}=eA.vnode,aA=createVNode(AA,nA,rA);return aA.ref=tA,aA.ce=oA,delete eA.vnode.ce,aA}const isKeepAlive=AA=>AA.type.__isKeepAlive,KeepAliveImpl={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(AA,{slots:eA}){const tA=getCurrentInstance(),nA=tA.ctx;if(!nA.renderer)return()=>{const pA=eA.default&&eA.default();return pA&&pA.length===1?pA[0]:pA};const rA=new Map,oA=new Set;let aA=null;const iA=tA.suspense,{renderer:{p:sA,m:cA,um:uA,o:{createElement:lA}}}=nA,gA=lA("div");nA.activate=(pA,mA,EA,BA,CA)=>{const IA=pA.component;cA(pA,mA,EA,0,iA),sA(IA.vnode,pA,mA,EA,IA,iA,BA,pA.slotScopeIds,CA),queuePostRenderEffect(()=>{IA.isDeactivated=!1,IA.a&&invokeArrayFns(IA.a);const yA=pA.props&&pA.props.onVnodeMounted;yA&&invokeVNodeHook(yA,IA.parent,pA)},iA)},nA.deactivate=pA=>{const mA=pA.component;invalidateMount(mA.m),invalidateMount(mA.a),cA(pA,gA,null,1,iA),queuePostRenderEffect(()=>{mA.da&&invokeArrayFns(mA.da);const EA=pA.props&&pA.props.onVnodeUnmounted;EA&&invokeVNodeHook(EA,mA.parent,pA),mA.isDeactivated=!0},iA)};function QA(pA){resetShapeFlag(pA),uA(pA,tA,iA,!0)}function dA(pA){rA.forEach((mA,EA)=>{const BA=getComponentName(mA.type);BA&&!pA(BA)&&fA(EA)})}function fA(pA){const mA=rA.get(pA);mA&&(!aA||!isSameVNodeType(mA,aA))?QA(mA):aA&&resetShapeFlag(aA),rA.delete(pA),oA.delete(pA)}watch$1(()=>[AA.include,AA.exclude],([pA,mA])=>{pA&&dA(EA=>matches$2(pA,EA)),mA&&dA(EA=>!matches$2(mA,EA))},{flush:"post",deep:!0});let hA=null;const TA=()=>{hA!=null&&(isSuspense(tA.subTree.type)?queuePostRenderEffect(()=>{rA.set(hA,getInnerChild(tA.subTree))},tA.subTree.suspense):rA.set(hA,getInnerChild(tA.subTree)))};return onMounted(TA),onUpdated(TA),onBeforeUnmount(()=>{rA.forEach(pA=>{const{subTree:mA,suspense:EA}=tA,BA=getInnerChild(mA);if(pA.type===BA.type&&pA.key===BA.key){resetShapeFlag(BA);const CA=BA.component.da;CA&&queuePostRenderEffect(CA,EA);return}QA(pA)})}),()=>{if(hA=null,!eA.default)return aA=null;const pA=eA.default(),mA=pA[0];if(pA.length>1)return aA=null,pA;if(!isVNode(mA)||!(mA.shapeFlag&4)&&!(mA.shapeFlag&128))return aA=null,mA;let EA=getInnerChild(mA);if(EA.type===Comment$1)return aA=null,EA;const BA=EA.type,CA=getComponentName(isAsyncWrapper(EA)?EA.type.__asyncResolved||{}:BA),{include:IA,exclude:yA,max:_A}=AA;if(IA&&(!CA||!matches$2(IA,CA))||yA&&CA&&matches$2(yA,CA))return EA.shapeFlag&=-257,aA=EA,mA;const DA=EA.key==null?BA:EA.key,HA=rA.get(DA);return EA.el&&(EA=cloneVNode(EA),mA.shapeFlag&128&&(mA.ssContent=EA)),hA=DA,HA?(EA.el=HA.el,EA.component=HA.component,EA.transition&&setTransitionHooks(EA,EA.transition),EA.shapeFlag|=512,oA.delete(DA),oA.add(DA)):(oA.add(DA),_A&&oA.size>parseInt(_A,10)&&fA(oA.values().next().value)),EA.shapeFlag|=256,aA=EA,isSuspense(mA.type)?mA:EA}}},KeepAlive=KeepAliveImpl;function matches$2(AA,eA){return isArray$1(AA)?AA.some(tA=>matches$2(tA,eA)):isString$2(AA)?AA.split(",").includes(eA):isRegExp$2(AA)?(AA.lastIndex=0,AA.test(eA)):!1}function onActivated(AA,eA){registerKeepAliveHook(AA,"a",eA)}function onDeactivated(AA,eA){registerKeepAliveHook(AA,"da",eA)}function registerKeepAliveHook(AA,eA,tA=currentInstance){const nA=AA.__wdc||(AA.__wdc=()=>{let rA=tA;for(;rA;){if(rA.isDeactivated)return;rA=rA.parent}return AA()});if(injectHook(eA,nA,tA),tA){let rA=tA.parent;for(;rA&&rA.parent;)isKeepAlive(rA.parent.vnode)&&injectToKeepAliveRoot(nA,eA,tA,rA),rA=rA.parent}}function injectToKeepAliveRoot(AA,eA,tA,nA){const rA=injectHook(eA,AA,nA,!0);onUnmounted(()=>{remove$1(nA[eA],rA)},tA)}function resetShapeFlag(AA){AA.shapeFlag&=-257,AA.shapeFlag&=-513}function getInnerChild(AA){return AA.shapeFlag&128?AA.ssContent:AA}function injectHook(AA,eA,tA=currentInstance,nA=!1){if(tA){const rA=tA[AA]||(tA[AA]=[]),oA=eA.__weh||(eA.__weh=(...aA)=>{pauseTracking();const iA=setCurrentInstance(tA),sA=callWithAsyncErrorHandling(eA,tA,AA,aA);return iA(),resetTracking(),sA});return nA?rA.unshift(oA):rA.push(oA),oA}}const createHook=AA=>(eA,tA=currentInstance)=>{(!isInSSRComponentSetup||AA==="sp")&&injectHook(AA,(...nA)=>eA(...nA),tA)},onBeforeMount=createHook("bm"),onMounted=createHook("m"),onBeforeUpdate=createHook("bu"),onUpdated=createHook("u"),onBeforeUnmount=createHook("bum"),onUnmounted=createHook("um"),onServerPrefetch=createHook("sp"),onRenderTriggered=createHook("rtg"),onRenderTracked=createHook("rtc");function onErrorCaptured(AA,eA=currentInstance){injectHook("ec",AA,eA)}const COMPONENTS="components",DIRECTIVES="directives";function resolveComponent(AA,eA){return resolveAsset(COMPONENTS,AA,!0,eA)||AA}const NULL_DYNAMIC_COMPONENT=Symbol.for("v-ndc");function resolveDynamicComponent(AA){return isString$2(AA)?resolveAsset(COMPONENTS,AA,!1)||AA:AA||NULL_DYNAMIC_COMPONENT}function resolveDirective(AA){return resolveAsset(DIRECTIVES,AA)}function resolveAsset(AA,eA,tA=!0,nA=!1){const rA=currentRenderingInstance||currentInstance;if(rA){const oA=rA.type;if(AA===COMPONENTS){const iA=getComponentName(oA,!1);if(iA&&(iA===eA||iA===camelize(eA)||iA===capitalize$1(camelize(eA))))return oA}const aA=resolve(rA[AA]||oA[AA],eA)||resolve(rA.appContext[AA],eA);return!aA&&nA?oA:aA}}function resolve(AA,eA){return AA&&(AA[eA]||AA[camelize(eA)]||AA[capitalize$1(camelize(eA))])}function renderList(AA,eA,tA,nA){let rA;const oA=tA&&tA[nA],aA=isArray$1(AA);if(aA||isString$2(AA)){const iA=aA&&isReactive(AA);let sA=!1,cA=!1;iA&&(sA=!isShallow(AA),cA=isReadonly(AA),AA=shallowReadArray(AA)),rA=new Array(AA.length);for(let uA=0,lA=AA.length;uAeA(iA,sA,void 0,oA&&oA[sA]));else{const iA=Object.keys(AA);rA=new Array(iA.length);for(let sA=0,cA=iA.length;sA{const oA=nA.fn(...rA);return oA&&(oA.key=nA.key),oA}:nA.fn)}return AA}function renderSlot(AA,eA,tA={},nA,rA){if(currentRenderingInstance.ce||currentRenderingInstance.parent&&isAsyncWrapper(currentRenderingInstance.parent)&¤tRenderingInstance.parent.ce)return eA!=="default"&&(tA.name=eA),openBlock(),createBlock(Fragment,null,[createVNode("slot",tA,nA&&nA())],64);let oA=AA[eA];oA&&oA._c&&(oA._d=!1),openBlock();const aA=oA&&ensureValidVNode(oA(tA)),iA=tA.key||aA&&aA.key,sA=createBlock(Fragment,{key:(iA&&!isSymbol(iA)?iA:`_${eA}`)+(!aA&&nA?"_fb":"")},aA||(nA?nA():[]),aA&&AA._===1?64:-2);return!rA&&sA.scopeId&&(sA.slotScopeIds=[sA.scopeId+"-s"]),oA&&oA._c&&(oA._d=!0),sA}function ensureValidVNode(AA){return AA.some(eA=>isVNode(eA)?!(eA.type===Comment$1||eA.type===Fragment&&!ensureValidVNode(eA.children)):!0)?AA:null}function toHandlers(AA,eA){const tA={};for(const nA in AA)tA[eA&&/[A-Z]/.test(nA)?`on:${nA}`:toHandlerKey(nA)]=AA[nA];return tA}const getPublicInstance=AA=>AA?isStatefulComponent(AA)?getComponentPublicInstance(AA):getPublicInstance(AA.parent):null,publicPropertiesMap=extend$2(Object.create(null),{$:AA=>AA,$el:AA=>AA.vnode.el,$data:AA=>AA.data,$props:AA=>AA.props,$attrs:AA=>AA.attrs,$slots:AA=>AA.slots,$refs:AA=>AA.refs,$parent:AA=>getPublicInstance(AA.parent),$root:AA=>getPublicInstance(AA.root),$host:AA=>AA.ce,$emit:AA=>AA.emit,$options:AA=>resolveMergedOptions(AA),$forceUpdate:AA=>AA.f||(AA.f=()=>{queueJob(AA.update)}),$nextTick:AA=>AA.n||(AA.n=nextTick.bind(AA.proxy)),$watch:AA=>instanceWatch.bind(AA)}),hasSetupBinding=(AA,eA)=>AA!==EMPTY_OBJ&&!AA.__isScriptSetup&&hasOwn$1(AA,eA),PublicInstanceProxyHandlers={get({_:AA},eA){if(eA==="__v_skip")return!0;const{ctx:tA,setupState:nA,data:rA,props:oA,accessCache:aA,type:iA,appContext:sA}=AA;let cA;if(eA[0]!=="$"){const QA=aA[eA];if(QA!==void 0)switch(QA){case 1:return nA[eA];case 2:return rA[eA];case 4:return tA[eA];case 3:return oA[eA]}else{if(hasSetupBinding(nA,eA))return aA[eA]=1,nA[eA];if(rA!==EMPTY_OBJ&&hasOwn$1(rA,eA))return aA[eA]=2,rA[eA];if((cA=AA.propsOptions[0])&&hasOwn$1(cA,eA))return aA[eA]=3,oA[eA];if(tA!==EMPTY_OBJ&&hasOwn$1(tA,eA))return aA[eA]=4,tA[eA];shouldCacheAccess&&(aA[eA]=0)}}const uA=publicPropertiesMap[eA];let lA,gA;if(uA)return eA==="$attrs"&&track(AA.attrs,"get",""),uA(AA);if((lA=iA.__cssModules)&&(lA=lA[eA]))return lA;if(tA!==EMPTY_OBJ&&hasOwn$1(tA,eA))return aA[eA]=4,tA[eA];if(gA=sA.config.globalProperties,hasOwn$1(gA,eA))return gA[eA]},set({_:AA},eA,tA){const{data:nA,setupState:rA,ctx:oA}=AA;return hasSetupBinding(rA,eA)?(rA[eA]=tA,!0):nA!==EMPTY_OBJ&&hasOwn$1(nA,eA)?(nA[eA]=tA,!0):hasOwn$1(AA.props,eA)||eA[0]==="$"&&eA.slice(1)in AA?!1:(oA[eA]=tA,!0)},has({_:{data:AA,setupState:eA,accessCache:tA,ctx:nA,appContext:rA,propsOptions:oA,type:aA}},iA){let sA,cA;return!!(tA[iA]||AA!==EMPTY_OBJ&&iA[0]!=="$"&&hasOwn$1(AA,iA)||hasSetupBinding(eA,iA)||(sA=oA[0])&&hasOwn$1(sA,iA)||hasOwn$1(nA,iA)||hasOwn$1(publicPropertiesMap,iA)||hasOwn$1(rA.config.globalProperties,iA)||(cA=aA.__cssModules)&&cA[iA])},defineProperty(AA,eA,tA){return tA.get!=null?AA._.accessCache[eA]=0:hasOwn$1(tA,"value")&&this.set(AA,eA,tA.value,null),Reflect.defineProperty(AA,eA,tA)}},RuntimeCompiledPublicInstanceProxyHandlers=extend$2({},PublicInstanceProxyHandlers,{get(AA,eA){if(eA!==Symbol.unscopables)return PublicInstanceProxyHandlers.get(AA,eA,AA)},has(AA,eA){return eA[0]!=="_"&&!isGloballyAllowed(eA)}});function defineProps(){return null}function defineEmits(){return null}function defineExpose(AA){}function defineOptions(AA){}function defineSlots(){return null}function defineModel(){}function withDefaults(AA,eA){return null}function useSlots(){return getContext().slots}function useAttrs(){return getContext().attrs}function getContext(AA){const eA=getCurrentInstance();return eA.setupContext||(eA.setupContext=createSetupContext(eA))}function normalizePropsOrEmits(AA){return isArray$1(AA)?AA.reduce((eA,tA)=>(eA[tA]=null,eA),{}):AA}function mergeDefaults(AA,eA){const tA=normalizePropsOrEmits(AA);for(const nA in eA){if(nA.startsWith("__skip"))continue;let rA=tA[nA];rA?isArray$1(rA)||isFunction$2(rA)?rA=tA[nA]={type:rA,default:eA[nA]}:rA.default=eA[nA]:rA===null&&(rA=tA[nA]={default:eA[nA]}),rA&&eA[`__skip_${nA}`]&&(rA.skipFactory=!0)}return tA}function mergeModels(AA,eA){return!AA||!eA?AA||eA:isArray$1(AA)&&isArray$1(eA)?AA.concat(eA):extend$2({},normalizePropsOrEmits(AA),normalizePropsOrEmits(eA))}function createPropsRestProxy(AA,eA){const tA={};for(const nA in AA)eA.includes(nA)||Object.defineProperty(tA,nA,{enumerable:!0,get:()=>AA[nA]});return tA}function withAsyncContext(AA){const eA=getCurrentInstance();let tA=AA();return unsetCurrentInstance(),isPromise(tA)&&(tA=tA.catch(nA=>{throw setCurrentInstance(eA),nA})),[tA,()=>setCurrentInstance(eA)]}let shouldCacheAccess=!0;function applyOptions(AA){const eA=resolveMergedOptions(AA),tA=AA.proxy,nA=AA.ctx;shouldCacheAccess=!1,eA.beforeCreate&&callHook$1(eA.beforeCreate,AA,"bc");const{data:rA,computed:oA,methods:aA,watch:iA,provide:sA,inject:cA,created:uA,beforeMount:lA,mounted:gA,beforeUpdate:QA,updated:dA,activated:fA,deactivated:hA,beforeDestroy:TA,beforeUnmount:pA,destroyed:mA,unmounted:EA,render:BA,renderTracked:CA,renderTriggered:IA,errorCaptured:yA,serverPrefetch:_A,expose:DA,inheritAttrs:HA,components:MA,directives:xA,filters:SA}=eA;if(cA&&resolveInjections(cA,nA,null),aA)for(const RA in aA){const $A=aA[RA];isFunction$2($A)&&(nA[RA]=$A.bind(tA))}if(rA){const RA=rA.call(tA,tA);isObject$4(RA)&&(AA.data=reactive(RA))}if(shouldCacheAccess=!0,oA)for(const RA in oA){const $A=oA[RA],YA=isFunction$2($A)?$A.bind(tA,tA):isFunction$2($A.get)?$A.get.bind(tA,tA):NOOP,UA=!isFunction$2($A)&&isFunction$2($A.set)?$A.set.bind(tA):NOOP,VA=computed({get:YA,set:UA});Object.defineProperty(nA,RA,{enumerable:!0,configurable:!0,get:()=>VA.value,set:ZA=>VA.value=ZA})}if(iA)for(const RA in iA)createWatcher(iA[RA],nA,tA,RA);if(sA){const RA=isFunction$2(sA)?sA.call(tA):sA;Reflect.ownKeys(RA).forEach($A=>{provide($A,RA[$A])})}uA&&callHook$1(uA,AA,"c");function FA(RA,$A){isArray$1($A)?$A.forEach(YA=>RA(YA.bind(tA))):$A&&RA($A.bind(tA))}if(FA(onBeforeMount,lA),FA(onMounted,gA),FA(onBeforeUpdate,QA),FA(onUpdated,dA),FA(onActivated,fA),FA(onDeactivated,hA),FA(onErrorCaptured,yA),FA(onRenderTracked,CA),FA(onRenderTriggered,IA),FA(onBeforeUnmount,pA),FA(onUnmounted,EA),FA(onServerPrefetch,_A),isArray$1(DA))if(DA.length){const RA=AA.exposed||(AA.exposed={});DA.forEach($A=>{Object.defineProperty(RA,$A,{get:()=>tA[$A],set:YA=>tA[$A]=YA,enumerable:!0})})}else AA.exposed||(AA.exposed={});BA&&AA.render===NOOP&&(AA.render=BA),HA!=null&&(AA.inheritAttrs=HA),MA&&(AA.components=MA),xA&&(AA.directives=xA),_A&&markAsyncBoundary(AA)}function resolveInjections(AA,eA,tA=NOOP){isArray$1(AA)&&(AA=normalizeInject(AA));for(const nA in AA){const rA=AA[nA];let oA;isObject$4(rA)?"default"in rA?oA=inject(rA.from||nA,rA.default,!0):oA=inject(rA.from||nA):oA=inject(rA),isRef(oA)?Object.defineProperty(eA,nA,{enumerable:!0,configurable:!0,get:()=>oA.value,set:aA=>oA.value=aA}):eA[nA]=oA}}function callHook$1(AA,eA,tA){callWithAsyncErrorHandling(isArray$1(AA)?AA.map(nA=>nA.bind(eA.proxy)):AA.bind(eA.proxy),eA,tA)}function createWatcher(AA,eA,tA,nA){let rA=nA.includes(".")?createPathGetter(tA,nA):()=>tA[nA];if(isString$2(AA)){const oA=eA[AA];isFunction$2(oA)&&watch$1(rA,oA)}else if(isFunction$2(AA))watch$1(rA,AA.bind(tA));else if(isObject$4(AA))if(isArray$1(AA))AA.forEach(oA=>createWatcher(oA,eA,tA,nA));else{const oA=isFunction$2(AA.handler)?AA.handler.bind(tA):eA[AA.handler];isFunction$2(oA)&&watch$1(rA,oA,AA)}}function resolveMergedOptions(AA){const eA=AA.type,{mixins:tA,extends:nA}=eA,{mixins:rA,optionsCache:oA,config:{optionMergeStrategies:aA}}=AA.appContext,iA=oA.get(eA);let sA;return iA?sA=iA:!rA.length&&!tA&&!nA?sA=eA:(sA={},rA.length&&rA.forEach(cA=>mergeOptions$1(sA,cA,aA,!0)),mergeOptions$1(sA,eA,aA)),isObject$4(eA)&&oA.set(eA,sA),sA}function mergeOptions$1(AA,eA,tA,nA=!1){const{mixins:rA,extends:oA}=eA;oA&&mergeOptions$1(AA,oA,tA,!0),rA&&rA.forEach(aA=>mergeOptions$1(AA,aA,tA,!0));for(const aA in eA)if(!(nA&&aA==="expose")){const iA=internalOptionMergeStrats[aA]||tA&&tA[aA];AA[aA]=iA?iA(AA[aA],eA[aA]):eA[aA]}return AA}const internalOptionMergeStrats={data:mergeDataFn,props:mergeEmitsOrPropsOptions,emits:mergeEmitsOrPropsOptions,methods:mergeObjectOptions,computed:mergeObjectOptions,beforeCreate:mergeAsArray$1,created:mergeAsArray$1,beforeMount:mergeAsArray$1,mounted:mergeAsArray$1,beforeUpdate:mergeAsArray$1,updated:mergeAsArray$1,beforeDestroy:mergeAsArray$1,beforeUnmount:mergeAsArray$1,destroyed:mergeAsArray$1,unmounted:mergeAsArray$1,activated:mergeAsArray$1,deactivated:mergeAsArray$1,errorCaptured:mergeAsArray$1,serverPrefetch:mergeAsArray$1,components:mergeObjectOptions,directives:mergeObjectOptions,watch:mergeWatchOptions,provide:mergeDataFn,inject:mergeInject};function mergeDataFn(AA,eA){return eA?AA?function(){return extend$2(isFunction$2(AA)?AA.call(this,this):AA,isFunction$2(eA)?eA.call(this,this):eA)}:eA:AA}function mergeInject(AA,eA){return mergeObjectOptions(normalizeInject(AA),normalizeInject(eA))}function normalizeInject(AA){if(isArray$1(AA)){const eA={};for(let tA=0;tA1)return tA&&isFunction$2(eA)?eA.call(nA&&nA.proxy):eA}}function hasInjectionContext(){return!!(getCurrentInstance()||currentApp)}const internalObjectProto={},createInternalObject=()=>Object.create(internalObjectProto),isInternalObject=AA=>Object.getPrototypeOf(AA)===internalObjectProto;function initProps(AA,eA,tA,nA=!1){const rA={},oA=createInternalObject();AA.propsDefaults=Object.create(null),setFullProps(AA,eA,rA,oA);for(const aA in AA.propsOptions[0])aA in rA||(rA[aA]=void 0);tA?AA.props=nA?rA:shallowReactive(rA):AA.type.props?AA.props=rA:AA.props=oA,AA.attrs=oA}function updateProps(AA,eA,tA,nA){const{props:rA,attrs:oA,vnode:{patchFlag:aA}}=AA,iA=toRaw(rA),[sA]=AA.propsOptions;let cA=!1;if((nA||aA>0)&&!(aA&16)){if(aA&8){const uA=AA.vnode.dynamicProps;for(let lA=0;lA{sA=!0;const[gA,QA]=normalizePropsOptions(lA,eA,!0);extend$2(aA,gA),QA&&iA.push(...QA)};!tA&&eA.mixins.length&&eA.mixins.forEach(uA),AA.extends&&uA(AA.extends),AA.mixins&&AA.mixins.forEach(uA)}if(!oA&&!sA)return isObject$4(AA)&&nA.set(AA,EMPTY_ARR),EMPTY_ARR;if(isArray$1(oA))for(let uA=0;uAAA==="_"||AA==="_ctx"||AA==="$stable",normalizeSlotValue=AA=>isArray$1(AA)?AA.map(normalizeVNode):[normalizeVNode(AA)],normalizeSlot=(AA,eA,tA)=>{if(eA._n)return eA;const nA=withCtx((...rA)=>normalizeSlotValue(eA(...rA)),tA);return nA._c=!1,nA},normalizeObjectSlots=(AA,eA,tA)=>{const nA=AA._ctx;for(const rA in AA){if(isInternalKey(rA))continue;const oA=AA[rA];if(isFunction$2(oA))eA[rA]=normalizeSlot(rA,oA,nA);else if(oA!=null){const aA=normalizeSlotValue(oA);eA[rA]=()=>aA}}},normalizeVNodeSlots=(AA,eA)=>{const tA=normalizeSlotValue(eA);AA.slots.default=()=>tA},assignSlots=(AA,eA,tA)=>{for(const nA in eA)(tA||!isInternalKey(nA))&&(AA[nA]=eA[nA])},initSlots=(AA,eA,tA)=>{const nA=AA.slots=createInternalObject();if(AA.vnode.shapeFlag&32){const rA=eA._;rA?(assignSlots(nA,eA,tA),tA&&def(nA,"_",rA,!0)):normalizeObjectSlots(eA,nA)}else eA&&normalizeVNodeSlots(AA,eA)},updateSlots=(AA,eA,tA)=>{const{vnode:nA,slots:rA}=AA;let oA=!0,aA=EMPTY_OBJ;if(nA.shapeFlag&32){const iA=eA._;iA?tA&&iA===1?oA=!1:assignSlots(rA,eA,tA):(oA=!eA.$stable,normalizeObjectSlots(eA,rA)),aA=eA}else eA&&(normalizeVNodeSlots(AA,eA),aA={default:1});if(oA)for(const iA in rA)!isInternalKey(iA)&&aA[iA]==null&&delete rA[iA]},queuePostRenderEffect=queueEffectWithSuspense;function createRenderer(AA){return baseCreateRenderer(AA)}function createHydrationRenderer(AA){return baseCreateRenderer(AA,createHydrationFunctions)}function baseCreateRenderer(AA,eA){const tA=getGlobalThis();tA.__VUE__=!0;const{insert:nA,remove:rA,patchProp:oA,createElement:aA,createText:iA,createComment:sA,setText:cA,setElementText:uA,parentNode:lA,nextSibling:gA,setScopeId:QA=NOOP,insertStaticContent:dA}=AA,fA=(jA,KA,XA,a1=null,e1=null,A1=null,l1=void 0,s1=null,u1=!!KA.dynamicChildren)=>{if(jA===KA)return;jA&&!isSameVNodeType(jA,KA)&&(a1=zA(jA),ZA(jA,e1,A1,!0),jA=null),KA.patchFlag===-2&&(u1=!1,KA.dynamicChildren=null);const{type:c1,ref:g1,shapeFlag:d1}=KA;switch(c1){case Text$2:hA(jA,KA,XA,a1);break;case Comment$1:TA(jA,KA,XA,a1);break;case Static:jA==null&&pA(KA,XA,a1,l1);break;case Fragment:MA(jA,KA,XA,a1,e1,A1,l1,s1,u1);break;default:d1&1?BA(jA,KA,XA,a1,e1,A1,l1,s1,u1):d1&6?xA(jA,KA,XA,a1,e1,A1,l1,s1,u1):(d1&64||d1&128)&&c1.process(jA,KA,XA,a1,e1,A1,l1,s1,u1,m1)}g1!=null&&e1?setRef(g1,jA&&jA.ref,A1,KA||jA,!KA):g1==null&&jA&&jA.ref!=null&&setRef(jA.ref,null,A1,jA,!0)},hA=(jA,KA,XA,a1)=>{if(jA==null)nA(KA.el=iA(KA.children),XA,a1);else{const e1=KA.el=jA.el;KA.children!==jA.children&&cA(e1,KA.children)}},TA=(jA,KA,XA,a1)=>{jA==null?nA(KA.el=sA(KA.children||""),XA,a1):KA.el=jA.el},pA=(jA,KA,XA,a1)=>{[jA.el,jA.anchor]=dA(jA.children,KA,XA,a1,jA.el,jA.anchor)},mA=({el:jA,anchor:KA},XA,a1)=>{let e1;for(;jA&&jA!==KA;)e1=gA(jA),nA(jA,XA,a1),jA=e1;nA(KA,XA,a1)},EA=({el:jA,anchor:KA})=>{let XA;for(;jA&&jA!==KA;)XA=gA(jA),rA(jA),jA=XA;rA(KA)},BA=(jA,KA,XA,a1,e1,A1,l1,s1,u1)=>{KA.type==="svg"?l1="svg":KA.type==="math"&&(l1="mathml"),jA==null?CA(KA,XA,a1,e1,A1,l1,s1,u1):_A(jA,KA,e1,A1,l1,s1,u1)},CA=(jA,KA,XA,a1,e1,A1,l1,s1)=>{let u1,c1;const{props:g1,shapeFlag:d1,transition:T1,dirs:B1}=jA;if(u1=jA.el=aA(jA.type,A1,g1&&g1.is,g1),d1&8?uA(u1,jA.children):d1&16&&yA(jA.children,u1,null,a1,e1,resolveChildrenNamespace(jA,A1),l1,s1),B1&&invokeDirectiveHook(jA,null,a1,"created"),IA(u1,jA,jA.scopeId,l1,a1),g1){for(const vA in g1)vA!=="value"&&!isReservedProp(vA)&&oA(u1,vA,null,g1[vA],A1,a1);"value"in g1&&oA(u1,"value",null,g1.value,A1),(c1=g1.onVnodeBeforeMount)&&invokeVNodeHook(c1,a1,jA)}B1&&invokeDirectiveHook(jA,null,a1,"beforeMount");const PA=needTransition(e1,T1);PA&&T1.beforeEnter(u1),nA(u1,KA,XA),((c1=g1&&g1.onVnodeMounted)||PA||B1)&&queuePostRenderEffect(()=>{c1&&invokeVNodeHook(c1,a1,jA),PA&&T1.enter(u1),B1&&invokeDirectiveHook(jA,null,a1,"mounted")},e1)},IA=(jA,KA,XA,a1,e1)=>{if(XA&&QA(jA,XA),a1)for(let A1=0;A1{for(let c1=u1;c1{const s1=KA.el=jA.el;let{patchFlag:u1,dynamicChildren:c1,dirs:g1}=KA;u1|=jA.patchFlag&16;const d1=jA.props||EMPTY_OBJ,T1=KA.props||EMPTY_OBJ;let B1;if(XA&&toggleRecurse(XA,!1),(B1=T1.onVnodeBeforeUpdate)&&invokeVNodeHook(B1,XA,KA,jA),g1&&invokeDirectiveHook(KA,jA,XA,"beforeUpdate"),XA&&toggleRecurse(XA,!0),(d1.innerHTML&&T1.innerHTML==null||d1.textContent&&T1.textContent==null)&&uA(s1,""),c1?DA(jA.dynamicChildren,c1,s1,XA,a1,resolveChildrenNamespace(KA,e1),A1):l1||$A(jA,KA,s1,null,XA,a1,resolveChildrenNamespace(KA,e1),A1,!1),u1>0){if(u1&16)HA(s1,d1,T1,XA,e1);else if(u1&2&&d1.class!==T1.class&&oA(s1,"class",null,T1.class,e1),u1&4&&oA(s1,"style",d1.style,T1.style,e1),u1&8){const PA=KA.dynamicProps;for(let vA=0;vA{B1&&invokeVNodeHook(B1,XA,KA,jA),g1&&invokeDirectiveHook(KA,jA,XA,"updated")},a1)},DA=(jA,KA,XA,a1,e1,A1,l1)=>{for(let s1=0;s1{if(KA!==XA){if(KA!==EMPTY_OBJ)for(const A1 in KA)!isReservedProp(A1)&&!(A1 in XA)&&oA(jA,A1,KA[A1],null,e1,a1);for(const A1 in XA){if(isReservedProp(A1))continue;const l1=XA[A1],s1=KA[A1];l1!==s1&&A1!=="value"&&oA(jA,A1,s1,l1,e1,a1)}"value"in XA&&oA(jA,"value",KA.value,XA.value,e1)}},MA=(jA,KA,XA,a1,e1,A1,l1,s1,u1)=>{const c1=KA.el=jA?jA.el:iA(""),g1=KA.anchor=jA?jA.anchor:iA("");let{patchFlag:d1,dynamicChildren:T1,slotScopeIds:B1}=KA;B1&&(s1=s1?s1.concat(B1):B1),jA==null?(nA(c1,XA,a1),nA(g1,XA,a1),yA(KA.children||[],XA,g1,e1,A1,l1,s1,u1)):d1>0&&d1&64&&T1&&jA.dynamicChildren?(DA(jA.dynamicChildren,T1,XA,e1,A1,l1,s1),(KA.key!=null||e1&&KA===e1.subTree)&&traverseStaticChildren(jA,KA,!0)):$A(jA,KA,XA,g1,e1,A1,l1,s1,u1)},xA=(jA,KA,XA,a1,e1,A1,l1,s1,u1)=>{KA.slotScopeIds=s1,jA==null?KA.shapeFlag&512?e1.ctx.activate(KA,XA,a1,l1,u1):SA(KA,XA,a1,e1,A1,l1,u1):OA(jA,KA,u1)},SA=(jA,KA,XA,a1,e1,A1,l1)=>{const s1=jA.component=createComponentInstance(jA,a1,e1);if(isKeepAlive(jA)&&(s1.ctx.renderer=m1),setupComponent(s1,!1,l1),s1.asyncDep){if(e1&&e1.registerDep(s1,FA,l1),!jA.el){const u1=s1.subTree=createVNode(Comment$1);TA(null,u1,KA,XA),jA.placeholder=u1.el}}else FA(s1,jA,KA,XA,e1,A1,l1)},OA=(jA,KA,XA)=>{const a1=KA.component=jA.component;if(shouldUpdateComponent(jA,KA,XA))if(a1.asyncDep&&!a1.asyncResolved){RA(a1,KA,XA);return}else a1.next=KA,a1.update();else KA.el=jA.el,a1.vnode=KA},FA=(jA,KA,XA,a1,e1,A1,l1)=>{const s1=()=>{if(jA.isMounted){let{next:d1,bu:T1,u:B1,parent:PA,vnode:vA}=jA;{const r1=locateNonHydratedAsyncRoot(jA);if(r1){d1&&(d1.el=vA.el,RA(jA,d1,l1)),r1.asyncDep.then(()=>{jA.isUnmounted||s1()});return}}let kA=d1,qA;toggleRecurse(jA,!1),d1?(d1.el=vA.el,RA(jA,d1,l1)):d1=vA,T1&&invokeArrayFns(T1),(qA=d1.props&&d1.props.onVnodeBeforeUpdate)&&invokeVNodeHook(qA,PA,d1,vA),toggleRecurse(jA,!0);const JA=renderComponentRoot(jA),t1=jA.subTree;jA.subTree=JA,fA(t1,JA,lA(t1.el),zA(t1),jA,e1,A1),d1.el=JA.el,kA===null&&updateHOCHostEl(jA,JA.el),B1&&queuePostRenderEffect(B1,e1),(qA=d1.props&&d1.props.onVnodeUpdated)&&queuePostRenderEffect(()=>invokeVNodeHook(qA,PA,d1,vA),e1)}else{let d1;const{el:T1,props:B1}=KA,{bm:PA,m:vA,parent:kA,root:qA,type:JA}=jA,t1=isAsyncWrapper(KA);if(toggleRecurse(jA,!1),PA&&invokeArrayFns(PA),!t1&&(d1=B1&&B1.onVnodeBeforeMount)&&invokeVNodeHook(d1,kA,KA),toggleRecurse(jA,!0),T1&&E1){const r1=()=>{jA.subTree=renderComponentRoot(jA),E1(T1,jA.subTree,jA,e1,null)};t1&&JA.__asyncHydrate?JA.__asyncHydrate(T1,jA,r1):r1()}else{qA.ce&&qA.ce._def.shadowRoot!==!1&&qA.ce._injectChildStyle(JA);const r1=jA.subTree=renderComponentRoot(jA);fA(null,r1,XA,a1,jA,e1,A1),KA.el=r1.el}if(vA&&queuePostRenderEffect(vA,e1),!t1&&(d1=B1&&B1.onVnodeMounted)){const r1=KA;queuePostRenderEffect(()=>invokeVNodeHook(d1,kA,r1),e1)}(KA.shapeFlag&256||kA&&isAsyncWrapper(kA.vnode)&&kA.vnode.shapeFlag&256)&&jA.a&&queuePostRenderEffect(jA.a,e1),jA.isMounted=!0,KA=XA=a1=null}};jA.scope.on();const u1=jA.effect=new ReactiveEffect(s1);jA.scope.off();const c1=jA.update=u1.run.bind(u1),g1=jA.job=u1.runIfDirty.bind(u1);g1.i=jA,g1.id=jA.uid,u1.scheduler=()=>queueJob(g1),toggleRecurse(jA,!0),c1()},RA=(jA,KA,XA)=>{KA.component=jA;const a1=jA.vnode.props;jA.vnode=KA,jA.next=null,updateProps(jA,KA.props,a1,XA),updateSlots(jA,KA.children,XA),pauseTracking(),flushPreFlushCbs(jA),resetTracking()},$A=(jA,KA,XA,a1,e1,A1,l1,s1,u1=!1)=>{const c1=jA&&jA.children,g1=jA?jA.shapeFlag:0,d1=KA.children,{patchFlag:T1,shapeFlag:B1}=KA;if(T1>0){if(T1&128){UA(c1,d1,XA,a1,e1,A1,l1,s1,u1);return}else if(T1&256){YA(c1,d1,XA,a1,e1,A1,l1,s1,u1);return}}B1&8?(g1&16&&i1(c1,e1,A1),d1!==c1&&uA(XA,d1)):g1&16?B1&16?UA(c1,d1,XA,a1,e1,A1,l1,s1,u1):i1(c1,e1,A1,!0):(g1&8&&uA(XA,""),B1&16&&yA(d1,XA,a1,e1,A1,l1,s1,u1))},YA=(jA,KA,XA,a1,e1,A1,l1,s1,u1)=>{jA=jA||EMPTY_ARR,KA=KA||EMPTY_ARR;const c1=jA.length,g1=KA.length,d1=Math.min(c1,g1);let T1;for(T1=0;T1g1?i1(jA,e1,A1,!0,!1,d1):yA(KA,XA,a1,e1,A1,l1,s1,u1,d1)},UA=(jA,KA,XA,a1,e1,A1,l1,s1,u1)=>{let c1=0;const g1=KA.length;let d1=jA.length-1,T1=g1-1;for(;c1<=d1&&c1<=T1;){const B1=jA[c1],PA=KA[c1]=u1?cloneIfMounted(KA[c1]):normalizeVNode(KA[c1]);if(isSameVNodeType(B1,PA))fA(B1,PA,XA,null,e1,A1,l1,s1,u1);else break;c1++}for(;c1<=d1&&c1<=T1;){const B1=jA[d1],PA=KA[T1]=u1?cloneIfMounted(KA[T1]):normalizeVNode(KA[T1]);if(isSameVNodeType(B1,PA))fA(B1,PA,XA,null,e1,A1,l1,s1,u1);else break;d1--,T1--}if(c1>d1){if(c1<=T1){const B1=T1+1,PA=B1T1)for(;c1<=d1;)ZA(jA[c1],e1,A1,!0),c1++;else{const B1=c1,PA=c1,vA=new Map;for(c1=PA;c1<=T1;c1++){const w1=KA[c1]=u1?cloneIfMounted(KA[c1]):normalizeVNode(KA[c1]);w1.key!=null&&vA.set(w1.key,c1)}let kA,qA=0;const JA=T1-PA+1;let t1=!1,r1=0;const C1=new Array(JA);for(c1=0;c1=JA){ZA(w1,e1,A1,!0);continue}let y1;if(w1.key!=null)y1=vA.get(w1.key);else for(kA=PA;kA<=T1;kA++)if(C1[kA-PA]===0&&isSameVNodeType(w1,KA[kA])){y1=kA;break}y1===void 0?ZA(w1,e1,A1,!0):(C1[y1-PA]=c1+1,y1>=r1?r1=y1:t1=!0,fA(w1,KA[y1],XA,null,e1,A1,l1,s1,u1),qA++)}const D1=t1?getSequence(C1):EMPTY_ARR;for(kA=D1.length-1,c1=JA-1;c1>=0;c1--){const w1=PA+c1,y1=KA[w1],b1=KA[w1+1],e2=w1+1{const{el:A1,type:l1,transition:s1,children:u1,shapeFlag:c1}=jA;if(c1&6){VA(jA.component.subTree,KA,XA,a1);return}if(c1&128){jA.suspense.move(KA,XA,a1);return}if(c1&64){l1.move(jA,KA,XA,m1);return}if(l1===Fragment){nA(A1,KA,XA);for(let d1=0;d1s1.enter(A1),e1);else{const{leave:d1,delayLeave:T1,afterLeave:B1}=s1,PA=()=>{jA.ctx.isUnmounted?rA(A1):nA(A1,KA,XA)},vA=()=>{A1._isLeaving&&A1[leaveCbKey](!0),d1(A1,()=>{PA(),B1&&B1()})};T1?T1(A1,PA,vA):vA()}else nA(A1,KA,XA)},ZA=(jA,KA,XA,a1=!1,e1=!1)=>{const{type:A1,props:l1,ref:s1,children:u1,dynamicChildren:c1,shapeFlag:g1,patchFlag:d1,dirs:T1,cacheIndex:B1}=jA;if(d1===-2&&(e1=!1),s1!=null&&(pauseTracking(),setRef(s1,null,XA,jA,!0),resetTracking()),B1!=null&&(KA.renderCache[B1]=void 0),g1&256){KA.ctx.deactivate(jA);return}const PA=g1&1&&T1,vA=!isAsyncWrapper(jA);let kA;if(vA&&(kA=l1&&l1.onVnodeBeforeUnmount)&&invokeVNodeHook(kA,KA,jA),g1&6)o1(jA.component,XA,a1);else{if(g1&128){jA.suspense.unmount(XA,a1);return}PA&&invokeDirectiveHook(jA,null,KA,"beforeUnmount"),g1&64?jA.type.remove(jA,KA,XA,m1,a1):c1&&!c1.hasOnce&&(A1!==Fragment||d1>0&&d1&64)?i1(c1,KA,XA,!1,!0):(A1===Fragment&&d1&384||!e1&&g1&16)&&i1(u1,KA,XA),a1&&WA(jA)}(vA&&(kA=l1&&l1.onVnodeUnmounted)||PA)&&queuePostRenderEffect(()=>{kA&&invokeVNodeHook(kA,KA,jA),PA&&invokeDirectiveHook(jA,null,KA,"unmounted")},XA)},WA=jA=>{const{type:KA,el:XA,anchor:a1,transition:e1}=jA;if(KA===Fragment){GA(XA,a1);return}if(KA===Static){EA(jA);return}const A1=()=>{rA(XA),e1&&!e1.persisted&&e1.afterLeave&&e1.afterLeave()};if(jA.shapeFlag&1&&e1&&!e1.persisted){const{leave:l1,delayLeave:s1}=e1,u1=()=>l1(XA,A1);s1?s1(jA.el,A1,u1):u1()}else A1()},GA=(jA,KA)=>{let XA;for(;jA!==KA;)XA=gA(jA),rA(jA),jA=XA;rA(KA)},o1=(jA,KA,XA)=>{const{bum:a1,scope:e1,job:A1,subTree:l1,um:s1,m:u1,a:c1}=jA;invalidateMount(u1),invalidateMount(c1),a1&&invokeArrayFns(a1),e1.stop(),A1&&(A1.flags|=8,ZA(l1,jA,KA,XA)),s1&&queuePostRenderEffect(s1,KA),queuePostRenderEffect(()=>{jA.isUnmounted=!0},KA)},i1=(jA,KA,XA,a1=!1,e1=!1,A1=0)=>{for(let l1=A1;l1{if(jA.shapeFlag&6)return zA(jA.component.subTree);if(jA.shapeFlag&128)return jA.suspense.next();const KA=gA(jA.anchor||jA.el),XA=KA&&KA[TeleportEndKey];return XA?gA(XA):KA};let n1=!1;const f1=(jA,KA,XA)=>{jA==null?KA._vnode&&ZA(KA._vnode,null,null,!0):fA(KA._vnode||null,jA,KA,null,null,null,XA),KA._vnode=jA,n1||(n1=!0,flushPreFlushCbs(),flushPostFlushCbs(),n1=!1)},m1={p:fA,um:ZA,m:VA,r:WA,mt:SA,mc:yA,pc:$A,pbc:DA,n:zA,o:AA};let h1,E1;return eA&&([h1,E1]=eA(m1)),{render:f1,hydrate:h1,createApp:createAppAPI(f1,h1)}}function resolveChildrenNamespace({type:AA,props:eA},tA){return tA==="svg"&&AA==="foreignObject"||tA==="mathml"&&AA==="annotation-xml"&&eA&&eA.encoding&&eA.encoding.includes("html")?void 0:tA}function toggleRecurse({effect:AA,job:eA},tA){tA?(AA.flags|=32,eA.flags|=4):(AA.flags&=-33,eA.flags&=-5)}function needTransition(AA,eA){return(!AA||AA&&!AA.pendingBranch)&&eA&&!eA.persisted}function traverseStaticChildren(AA,eA,tA=!1){const nA=AA.children,rA=eA.children;if(isArray$1(nA)&&isArray$1(rA))for(let oA=0;oA>1,AA[tA[iA]]0&&(eA[nA]=tA[oA-1]),tA[oA]=nA)}}for(oA=tA.length,aA=tA[oA-1];oA-- >0;)tA[oA]=aA,aA=eA[aA];return tA}function locateNonHydratedAsyncRoot(AA){const eA=AA.subTree.component;if(eA)return eA.asyncDep&&!eA.asyncResolved?eA:locateNonHydratedAsyncRoot(eA)}function invalidateMount(AA){if(AA)for(let eA=0;eAinject(ssrContextKey);function watchEffect(AA,eA){return doWatch(AA,null,eA)}function watchPostEffect(AA,eA){return doWatch(AA,null,{flush:"post"})}function watchSyncEffect(AA,eA){return doWatch(AA,null,{flush:"sync"})}function watch$1(AA,eA,tA){return doWatch(AA,eA,tA)}function doWatch(AA,eA,tA=EMPTY_OBJ){const{immediate:nA,deep:rA,flush:oA,once:aA}=tA,iA=extend$2({},tA),sA=eA&&nA||!eA&&oA!=="post";let cA;if(isInSSRComponentSetup){if(oA==="sync"){const QA=useSSRContext();cA=QA.__watcherHandles||(QA.__watcherHandles=[])}else if(!sA){const QA=()=>{};return QA.stop=NOOP,QA.resume=NOOP,QA.pause=NOOP,QA}}const uA=currentInstance;iA.call=(QA,dA,fA)=>callWithAsyncErrorHandling(QA,uA,dA,fA);let lA=!1;oA==="post"?iA.scheduler=QA=>{queuePostRenderEffect(QA,uA&&uA.suspense)}:oA!=="sync"&&(lA=!0,iA.scheduler=(QA,dA)=>{dA?QA():queueJob(QA)}),iA.augmentJob=QA=>{eA&&(QA.flags|=4),lA&&(QA.flags|=2,uA&&(QA.id=uA.uid,QA.i=uA))};const gA=watch$2(AA,eA,iA);return isInSSRComponentSetup&&(cA?cA.push(gA):sA&&gA()),gA}function instanceWatch(AA,eA,tA){const nA=this.proxy,rA=isString$2(AA)?AA.includes(".")?createPathGetter(nA,AA):()=>nA[AA]:AA.bind(nA,nA);let oA;isFunction$2(eA)?oA=eA:(oA=eA.handler,tA=eA);const aA=setCurrentInstance(this),iA=doWatch(rA,oA.bind(nA),tA);return aA(),iA}function createPathGetter(AA,eA){const tA=eA.split(".");return()=>{let nA=AA;for(let rA=0;rA{let uA,lA=EMPTY_OBJ,gA;return watchSyncEffect(()=>{const QA=AA[rA];hasChanged(uA,QA)&&(uA=QA,cA())}),{get(){return sA(),tA.get?tA.get(uA):uA},set(QA){const dA=tA.set?tA.set(QA):QA;if(!hasChanged(dA,uA)&&!(lA!==EMPTY_OBJ&&hasChanged(QA,lA)))return;const fA=nA.vnode.props;fA&&(eA in fA||rA in fA||oA in fA)&&(`onUpdate:${eA}`in fA||`onUpdate:${rA}`in fA||`onUpdate:${oA}`in fA)||(uA=QA,cA()),nA.emit(`update:${eA}`,dA),hasChanged(QA,dA)&&hasChanged(QA,lA)&&!hasChanged(dA,gA)&&cA(),lA=QA,gA=dA}}});return iA[Symbol.iterator]=()=>{let sA=0;return{next(){return sA<2?{value:sA++?aA||EMPTY_OBJ:iA,done:!1}:{done:!0}}}},iA}const getModelModifiers=(AA,eA)=>eA==="modelValue"||eA==="model-value"?AA.modelModifiers:AA[`${eA}Modifiers`]||AA[`${camelize(eA)}Modifiers`]||AA[`${hyphenate(eA)}Modifiers`];function emit(AA,eA,...tA){if(AA.isUnmounted)return;const nA=AA.vnode.props||EMPTY_OBJ;let rA=tA;const oA=eA.startsWith("update:"),aA=oA&&getModelModifiers(nA,eA.slice(7));aA&&(aA.trim&&(rA=tA.map(uA=>isString$2(uA)?uA.trim():uA)),aA.number&&(rA=tA.map(looseToNumber)));let iA,sA=nA[iA=toHandlerKey(eA)]||nA[iA=toHandlerKey(camelize(eA))];!sA&&oA&&(sA=nA[iA=toHandlerKey(hyphenate(eA))]),sA&&callWithAsyncErrorHandling(sA,AA,6,rA);const cA=nA[iA+"Once"];if(cA){if(!AA.emitted)AA.emitted={};else if(AA.emitted[iA])return;AA.emitted[iA]=!0,callWithAsyncErrorHandling(cA,AA,6,rA)}}const mixinEmitsCache=new WeakMap;function normalizeEmitsOptions(AA,eA,tA=!1){const nA=tA?mixinEmitsCache:eA.emitsCache,rA=nA.get(AA);if(rA!==void 0)return rA;const oA=AA.emits;let aA={},iA=!1;if(!isFunction$2(AA)){const sA=cA=>{const uA=normalizeEmitsOptions(cA,eA,!0);uA&&(iA=!0,extend$2(aA,uA))};!tA&&eA.mixins.length&&eA.mixins.forEach(sA),AA.extends&&sA(AA.extends),AA.mixins&&AA.mixins.forEach(sA)}return!oA&&!iA?(isObject$4(AA)&&nA.set(AA,null),null):(isArray$1(oA)?oA.forEach(sA=>aA[sA]=null):extend$2(aA,oA),isObject$4(AA)&&nA.set(AA,aA),aA)}function isEmitListener(AA,eA){return!AA||!isOn(eA)?!1:(eA=eA.slice(2).replace(/Once$/,""),hasOwn$1(AA,eA[0].toLowerCase()+eA.slice(1))||hasOwn$1(AA,hyphenate(eA))||hasOwn$1(AA,eA))}function markAttrsAccessed(){}function renderComponentRoot(AA){const{type:eA,vnode:tA,proxy:nA,withProxy:rA,propsOptions:[oA],slots:aA,attrs:iA,emit:sA,render:cA,renderCache:uA,props:lA,data:gA,setupState:QA,ctx:dA,inheritAttrs:fA}=AA,hA=setCurrentRenderingInstance(AA);let TA,pA;try{if(tA.shapeFlag&4){const EA=rA||nA,BA=EA;TA=normalizeVNode(cA.call(BA,EA,uA,lA,QA,gA,dA)),pA=iA}else{const EA=eA;TA=normalizeVNode(EA.length>1?EA(lA,{attrs:iA,slots:aA,emit:sA}):EA(lA,null)),pA=eA.props?iA:getFunctionalFallthrough(iA)}}catch(EA){blockStack.length=0,handleError(EA,AA,1),TA=createVNode(Comment$1)}let mA=TA;if(pA&&fA!==!1){const EA=Object.keys(pA),{shapeFlag:BA}=mA;EA.length&&BA&7&&(oA&&EA.some(isModelListener)&&(pA=filterModelListeners(pA,oA)),mA=cloneVNode(mA,pA,!1,!0))}return tA.dirs&&(mA=cloneVNode(mA,null,!1,!0),mA.dirs=mA.dirs?mA.dirs.concat(tA.dirs):tA.dirs),tA.transition&&setTransitionHooks(mA,tA.transition),TA=mA,setCurrentRenderingInstance(hA),TA}function filterSingleRoot(AA,eA=!0){let tA;for(let nA=0;nA{let eA;for(const tA in AA)(tA==="class"||tA==="style"||isOn(tA))&&((eA||(eA={}))[tA]=AA[tA]);return eA},filterModelListeners=(AA,eA)=>{const tA={};for(const nA in AA)(!isModelListener(nA)||!(nA.slice(9)in eA))&&(tA[nA]=AA[nA]);return tA};function shouldUpdateComponent(AA,eA,tA){const{props:nA,children:rA,component:oA}=AA,{props:aA,children:iA,patchFlag:sA}=eA,cA=oA.emitsOptions;if(eA.dirs||eA.transition)return!0;if(tA&&sA>=0){if(sA&1024)return!0;if(sA&16)return nA?hasPropsChanged(nA,aA,cA):!!aA;if(sA&8){const uA=eA.dynamicProps;for(let lA=0;lAAA.__isSuspense;let suspenseId=0;const SuspenseImpl={name:"Suspense",__isSuspense:!0,process(AA,eA,tA,nA,rA,oA,aA,iA,sA,cA){if(AA==null)mountSuspense(eA,tA,nA,rA,oA,aA,iA,sA,cA);else{if(oA&&oA.deps>0&&!AA.suspense.isInFallback){eA.suspense=AA.suspense,eA.suspense.vnode=eA,eA.el=AA.el;return}patchSuspense(AA,eA,tA,nA,rA,aA,iA,sA,cA)}},hydrate:hydrateSuspense,normalize:normalizeSuspenseChildren},Suspense=SuspenseImpl;function triggerEvent(AA,eA){const tA=AA.props&&AA.props[eA];isFunction$2(tA)&&tA()}function mountSuspense(AA,eA,tA,nA,rA,oA,aA,iA,sA){const{p:cA,o:{createElement:uA}}=sA,lA=uA("div"),gA=AA.suspense=createSuspenseBoundary(AA,rA,nA,eA,lA,tA,oA,aA,iA,sA);cA(null,gA.pendingBranch=AA.ssContent,lA,null,nA,gA,oA,aA),gA.deps>0?(triggerEvent(AA,"onPending"),triggerEvent(AA,"onFallback"),cA(null,AA.ssFallback,eA,tA,nA,null,oA,aA),setActiveBranch(gA,AA.ssFallback)):gA.resolve(!1,!0)}function patchSuspense(AA,eA,tA,nA,rA,oA,aA,iA,{p:sA,um:cA,o:{createElement:uA}}){const lA=eA.suspense=AA.suspense;lA.vnode=eA,eA.el=AA.el;const gA=eA.ssContent,QA=eA.ssFallback,{activeBranch:dA,pendingBranch:fA,isInFallback:hA,isHydrating:TA}=lA;if(fA)lA.pendingBranch=gA,isSameVNodeType(fA,gA)?(sA(fA,gA,lA.hiddenContainer,null,rA,lA,oA,aA,iA),lA.deps<=0?lA.resolve():hA&&(TA||(sA(dA,QA,tA,nA,rA,null,oA,aA,iA),setActiveBranch(lA,QA)))):(lA.pendingId=suspenseId++,TA?(lA.isHydrating=!1,lA.activeBranch=fA):cA(fA,rA,lA),lA.deps=0,lA.effects.length=0,lA.hiddenContainer=uA("div"),hA?(sA(null,gA,lA.hiddenContainer,null,rA,lA,oA,aA,iA),lA.deps<=0?lA.resolve():(sA(dA,QA,tA,nA,rA,null,oA,aA,iA),setActiveBranch(lA,QA))):dA&&isSameVNodeType(dA,gA)?(sA(dA,gA,tA,nA,rA,lA,oA,aA,iA),lA.resolve(!0)):(sA(null,gA,lA.hiddenContainer,null,rA,lA,oA,aA,iA),lA.deps<=0&&lA.resolve()));else if(dA&&isSameVNodeType(dA,gA))sA(dA,gA,tA,nA,rA,lA,oA,aA,iA),setActiveBranch(lA,gA);else if(triggerEvent(eA,"onPending"),lA.pendingBranch=gA,gA.shapeFlag&512?lA.pendingId=gA.component.suspenseId:lA.pendingId=suspenseId++,sA(null,gA,lA.hiddenContainer,null,rA,lA,oA,aA,iA),lA.deps<=0)lA.resolve();else{const{timeout:pA,pendingId:mA}=lA;pA>0?setTimeout(()=>{lA.pendingId===mA&&lA.fallback(QA)},pA):pA===0&&lA.fallback(QA)}}function createSuspenseBoundary(AA,eA,tA,nA,rA,oA,aA,iA,sA,cA,uA=!1){const{p:lA,m:gA,um:QA,n:dA,o:{parentNode:fA,remove:hA}}=cA;let TA;const pA=isVNodeSuspensible(AA);pA&&eA&&eA.pendingBranch&&(TA=eA.pendingId,eA.deps++);const mA=AA.props?toNumber(AA.props.timeout):void 0,EA=oA,BA={vnode:AA,parent:eA,parentComponent:tA,namespace:aA,container:nA,hiddenContainer:rA,deps:0,pendingId:suspenseId++,timeout:typeof mA=="number"?mA:-1,activeBranch:null,pendingBranch:null,isInFallback:!uA,isHydrating:uA,isUnmounted:!1,effects:[],resolve(CA=!1,IA=!1){const{vnode:yA,activeBranch:_A,pendingBranch:DA,pendingId:HA,effects:MA,parentComponent:xA,container:SA}=BA;let OA=!1;BA.isHydrating?BA.isHydrating=!1:CA||(OA=_A&&DA.transition&&DA.transition.mode==="out-in",OA&&(_A.transition.afterLeave=()=>{HA===BA.pendingId&&(gA(DA,SA,oA===EA?dA(_A):oA,0),queuePostFlushCb(MA))}),_A&&(fA(_A.el)===SA&&(oA=dA(_A)),QA(_A,xA,BA,!0)),OA||gA(DA,SA,oA,0)),setActiveBranch(BA,DA),BA.pendingBranch=null,BA.isInFallback=!1;let FA=BA.parent,RA=!1;for(;FA;){if(FA.pendingBranch){FA.effects.push(...MA),RA=!0;break}FA=FA.parent}!RA&&!OA&&queuePostFlushCb(MA),BA.effects=[],pA&&eA&&eA.pendingBranch&&TA===eA.pendingId&&(eA.deps--,eA.deps===0&&!IA&&eA.resolve()),triggerEvent(yA,"onResolve")},fallback(CA){if(!BA.pendingBranch)return;const{vnode:IA,activeBranch:yA,parentComponent:_A,container:DA,namespace:HA}=BA;triggerEvent(IA,"onFallback");const MA=dA(yA),xA=()=>{BA.isInFallback&&(lA(null,CA,DA,MA,_A,null,HA,iA,sA),setActiveBranch(BA,CA))},SA=CA.transition&&CA.transition.mode==="out-in";SA&&(yA.transition.afterLeave=xA),BA.isInFallback=!0,QA(yA,_A,null,!0),SA||xA()},move(CA,IA,yA){BA.activeBranch&&gA(BA.activeBranch,CA,IA,yA),BA.container=CA},next(){return BA.activeBranch&&dA(BA.activeBranch)},registerDep(CA,IA,yA){const _A=!!BA.pendingBranch;_A&&BA.deps++;const DA=CA.vnode.el;CA.asyncDep.catch(HA=>{handleError(HA,CA,0)}).then(HA=>{if(CA.isUnmounted||BA.isUnmounted||BA.pendingId!==CA.suspenseId)return;CA.asyncResolved=!0;const{vnode:MA}=CA;handleSetupResult(CA,HA,!1),DA&&(MA.el=DA);const xA=!DA&&CA.subTree.el;IA(CA,MA,fA(DA||CA.subTree.el),DA?null:dA(CA.subTree),BA,aA,yA),xA&&hA(xA),updateHOCHostEl(CA,MA.el),_A&&--BA.deps===0&&BA.resolve()})},unmount(CA,IA){BA.isUnmounted=!0,BA.activeBranch&&QA(BA.activeBranch,tA,CA,IA),BA.pendingBranch&&QA(BA.pendingBranch,tA,CA,IA)}};return BA}function hydrateSuspense(AA,eA,tA,nA,rA,oA,aA,iA,sA){const cA=eA.suspense=createSuspenseBoundary(eA,nA,tA,AA.parentNode,document.createElement("div"),null,rA,oA,aA,iA,!0),uA=sA(AA,cA.pendingBranch=eA.ssContent,tA,cA,oA,aA);return cA.deps===0&&cA.resolve(!1,!0),uA}function normalizeSuspenseChildren(AA){const{shapeFlag:eA,children:tA}=AA,nA=eA&32;AA.ssContent=normalizeSuspenseSlot(nA?tA.default:tA),AA.ssFallback=nA?normalizeSuspenseSlot(tA.fallback):createVNode(Comment$1)}function normalizeSuspenseSlot(AA){let eA;if(isFunction$2(AA)){const tA=isBlockTreeEnabled&&AA._c;tA&&(AA._d=!1,openBlock()),AA=AA(),tA&&(AA._d=!0,eA=currentBlock,closeBlock())}return isArray$1(AA)&&(AA=filterSingleRoot(AA)),AA=normalizeVNode(AA),eA&&!AA.dynamicChildren&&(AA.dynamicChildren=eA.filter(tA=>tA!==AA)),AA}function queueEffectWithSuspense(AA,eA){eA&&eA.pendingBranch?isArray$1(AA)?eA.effects.push(...AA):eA.effects.push(AA):queuePostFlushCb(AA)}function setActiveBranch(AA,eA){AA.activeBranch=eA;const{vnode:tA,parentComponent:nA}=AA;let rA=eA.el;for(;!rA&&eA.component;)eA=eA.component.subTree,rA=eA.el;tA.el=rA,nA&&nA.subTree===tA&&(nA.vnode.el=rA,updateHOCHostEl(nA,rA))}function isVNodeSuspensible(AA){const eA=AA.props&&AA.props.suspensible;return eA!=null&&eA!==!1}const Fragment=Symbol.for("v-fgt"),Text$2=Symbol.for("v-txt"),Comment$1=Symbol.for("v-cmt"),Static=Symbol.for("v-stc"),blockStack=[];let currentBlock=null;function openBlock(AA=!1){blockStack.push(currentBlock=AA?null:[])}function closeBlock(){blockStack.pop(),currentBlock=blockStack[blockStack.length-1]||null}let isBlockTreeEnabled=1;function setBlockTracking(AA,eA=!1){isBlockTreeEnabled+=AA,AA<0&¤tBlock&&eA&&(currentBlock.hasOnce=!0)}function setupBlock(AA){return AA.dynamicChildren=isBlockTreeEnabled>0?currentBlock||EMPTY_ARR:null,closeBlock(),isBlockTreeEnabled>0&¤tBlock&¤tBlock.push(AA),AA}function createElementBlock(AA,eA,tA,nA,rA,oA){return setupBlock(createBaseVNode(AA,eA,tA,nA,rA,oA,!0))}function createBlock(AA,eA,tA,nA,rA){return setupBlock(createVNode(AA,eA,tA,nA,rA,!0))}function isVNode(AA){return AA?AA.__v_isVNode===!0:!1}function isSameVNodeType(AA,eA){return AA.type===eA.type&&AA.key===eA.key}function transformVNodeArgs(AA){}const normalizeKey=({key:AA})=>AA??null,normalizeRef=({ref:AA,ref_key:eA,ref_for:tA})=>(typeof AA=="number"&&(AA=""+AA),AA!=null?isString$2(AA)||isRef(AA)||isFunction$2(AA)?{i:currentRenderingInstance,r:AA,k:eA,f:!!tA}:AA:null);function createBaseVNode(AA,eA=null,tA=null,nA=0,rA=null,oA=AA===Fragment?0:1,aA=!1,iA=!1){const sA={__v_isVNode:!0,__v_skip:!0,type:AA,props:eA,key:eA&&normalizeKey(eA),ref:eA&&normalizeRef(eA),scopeId:currentScopeId,slotScopeIds:null,children:tA,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:oA,patchFlag:nA,dynamicProps:rA,dynamicChildren:null,appContext:null,ctx:currentRenderingInstance};return iA?(normalizeChildren(sA,tA),oA&128&&AA.normalize(sA)):tA&&(sA.shapeFlag|=isString$2(tA)?8:16),isBlockTreeEnabled>0&&!aA&¤tBlock&&(sA.patchFlag>0||oA&6)&&sA.patchFlag!==32&¤tBlock.push(sA),sA}const createVNode=_createVNode;function _createVNode(AA,eA=null,tA=null,nA=0,rA=null,oA=!1){if((!AA||AA===NULL_DYNAMIC_COMPONENT)&&(AA=Comment$1),isVNode(AA)){const iA=cloneVNode(AA,eA,!0);return tA&&normalizeChildren(iA,tA),isBlockTreeEnabled>0&&!oA&¤tBlock&&(iA.shapeFlag&6?currentBlock[currentBlock.indexOf(AA)]=iA:currentBlock.push(iA)),iA.patchFlag=-2,iA}if(isClassComponent(AA)&&(AA=AA.__vccOpts),eA){eA=guardReactiveProps(eA);let{class:iA,style:sA}=eA;iA&&!isString$2(iA)&&(eA.class=normalizeClass(iA)),isObject$4(sA)&&(isProxy(sA)&&!isArray$1(sA)&&(sA=extend$2({},sA)),eA.style=normalizeStyle(sA))}const aA=isString$2(AA)?1:isSuspense(AA)?128:isTeleport(AA)?64:isObject$4(AA)?4:isFunction$2(AA)?2:0;return createBaseVNode(AA,eA,tA,nA,rA,aA,oA,!0)}function guardReactiveProps(AA){return AA?isProxy(AA)||isInternalObject(AA)?extend$2({},AA):AA:null}function cloneVNode(AA,eA,tA=!1,nA=!1){const{props:rA,ref:oA,patchFlag:aA,children:iA,transition:sA}=AA,cA=eA?mergeProps(rA||{},eA):rA,uA={__v_isVNode:!0,__v_skip:!0,type:AA.type,props:cA,key:cA&&normalizeKey(cA),ref:eA&&eA.ref?tA&&oA?isArray$1(oA)?oA.concat(normalizeRef(eA)):[oA,normalizeRef(eA)]:normalizeRef(eA):oA,scopeId:AA.scopeId,slotScopeIds:AA.slotScopeIds,children:iA,target:AA.target,targetStart:AA.targetStart,targetAnchor:AA.targetAnchor,staticCount:AA.staticCount,shapeFlag:AA.shapeFlag,patchFlag:eA&&AA.type!==Fragment?aA===-1?16:aA|16:aA,dynamicProps:AA.dynamicProps,dynamicChildren:AA.dynamicChildren,appContext:AA.appContext,dirs:AA.dirs,transition:sA,component:AA.component,suspense:AA.suspense,ssContent:AA.ssContent&&cloneVNode(AA.ssContent),ssFallback:AA.ssFallback&&cloneVNode(AA.ssFallback),placeholder:AA.placeholder,el:AA.el,anchor:AA.anchor,ctx:AA.ctx,ce:AA.ce};return sA&&nA&&setTransitionHooks(uA,sA.clone(uA)),uA}function createTextVNode(AA=" ",eA=0){return createVNode(Text$2,null,AA,eA)}function createStaticVNode(AA,eA){const tA=createVNode(Static,null,AA);return tA.staticCount=eA,tA}function createCommentVNode(AA="",eA=!1){return eA?(openBlock(),createBlock(Comment$1,null,AA)):createVNode(Comment$1,null,AA)}function normalizeVNode(AA){return AA==null||typeof AA=="boolean"?createVNode(Comment$1):isArray$1(AA)?createVNode(Fragment,null,AA.slice()):isVNode(AA)?cloneIfMounted(AA):createVNode(Text$2,null,String(AA))}function cloneIfMounted(AA){return AA.el===null&&AA.patchFlag!==-1||AA.memo?AA:cloneVNode(AA)}function normalizeChildren(AA,eA){let tA=0;const{shapeFlag:nA}=AA;if(eA==null)eA=null;else if(isArray$1(eA))tA=16;else if(typeof eA=="object")if(nA&65){const rA=eA.default;rA&&(rA._c&&(rA._d=!1),normalizeChildren(AA,rA()),rA._c&&(rA._d=!0));return}else{tA=32;const rA=eA._;!rA&&!isInternalObject(eA)?eA._ctx=currentRenderingInstance:rA===3&¤tRenderingInstance&&(currentRenderingInstance.slots._===1?eA._=1:(eA._=2,AA.patchFlag|=1024))}else isFunction$2(eA)?(eA={default:eA,_ctx:currentRenderingInstance},tA=32):(eA=String(eA),nA&64?(tA=16,eA=[createTextVNode(eA)]):tA=8);AA.children=eA,AA.shapeFlag|=tA}function mergeProps(...AA){const eA={};for(let tA=0;tAcurrentInstance||currentRenderingInstance;let internalSetCurrentInstance,setInSSRSetupState;{const AA=getGlobalThis(),eA=(tA,nA)=>{let rA;return(rA=AA[tA])||(rA=AA[tA]=[]),rA.push(nA),oA=>{rA.length>1?rA.forEach(aA=>aA(oA)):rA[0](oA)}};internalSetCurrentInstance=eA("__VUE_INSTANCE_SETTERS__",tA=>currentInstance=tA),setInSSRSetupState=eA("__VUE_SSR_SETTERS__",tA=>isInSSRComponentSetup=tA)}const setCurrentInstance=AA=>{const eA=currentInstance;return internalSetCurrentInstance(AA),AA.scope.on(),()=>{AA.scope.off(),internalSetCurrentInstance(eA)}},unsetCurrentInstance=()=>{currentInstance&¤tInstance.scope.off(),internalSetCurrentInstance(null)};function isStatefulComponent(AA){return AA.vnode.shapeFlag&4}let isInSSRComponentSetup=!1;function setupComponent(AA,eA=!1,tA=!1){eA&&setInSSRSetupState(eA);const{props:nA,children:rA}=AA.vnode,oA=isStatefulComponent(AA);initProps(AA,nA,oA,eA),initSlots(AA,rA,tA||eA);const aA=oA?setupStatefulComponent(AA,eA):void 0;return eA&&setInSSRSetupState(!1),aA}function setupStatefulComponent(AA,eA){const tA=AA.type;AA.accessCache=Object.create(null),AA.proxy=new Proxy(AA.ctx,PublicInstanceProxyHandlers);const{setup:nA}=tA;if(nA){pauseTracking();const rA=AA.setupContext=nA.length>1?createSetupContext(AA):null,oA=setCurrentInstance(AA),aA=callWithErrorHandling(nA,AA,0,[AA.props,rA]),iA=isPromise(aA);if(resetTracking(),oA(),(iA||AA.sp)&&!isAsyncWrapper(AA)&&markAsyncBoundary(AA),iA){if(aA.then(unsetCurrentInstance,unsetCurrentInstance),eA)return aA.then(sA=>{handleSetupResult(AA,sA,eA)}).catch(sA=>{handleError(sA,AA,0)});AA.asyncDep=aA}else handleSetupResult(AA,aA,eA)}else finishComponentSetup(AA,eA)}function handleSetupResult(AA,eA,tA){isFunction$2(eA)?AA.type.__ssrInlineRender?AA.ssrRender=eA:AA.render=eA:isObject$4(eA)&&(AA.setupState=proxyRefs(eA)),finishComponentSetup(AA,tA)}let compile$5,installWithProxy;function registerRuntimeCompiler(AA){compile$5=AA,installWithProxy=eA=>{eA.render._rc&&(eA.withProxy=new Proxy(eA.ctx,RuntimeCompiledPublicInstanceProxyHandlers))}}const isRuntimeOnly=()=>!compile$5;function finishComponentSetup(AA,eA,tA){const nA=AA.type;if(!AA.render){if(!eA&&compile$5&&!nA.render){const rA=nA.template||resolveMergedOptions(AA).template;if(rA){const{isCustomElement:oA,compilerOptions:aA}=AA.appContext.config,{delimiters:iA,compilerOptions:sA}=nA,cA=extend$2(extend$2({isCustomElement:oA,delimiters:iA},aA),sA);nA.render=compile$5(rA,cA)}}AA.render=nA.render||NOOP,installWithProxy&&installWithProxy(AA)}{const rA=setCurrentInstance(AA);pauseTracking();try{applyOptions(AA)}finally{resetTracking(),rA()}}}const attrsProxyHandlers={get(AA,eA){return track(AA,"get",""),AA[eA]}};function createSetupContext(AA){const eA=tA=>{AA.exposed=tA||{}};return{attrs:new Proxy(AA.attrs,attrsProxyHandlers),slots:AA.slots,emit:AA.emit,expose:eA}}function getComponentPublicInstance(AA){return AA.exposed?AA.exposeProxy||(AA.exposeProxy=new Proxy(proxyRefs(markRaw(AA.exposed)),{get(eA,tA){if(tA in eA)return eA[tA];if(tA in publicPropertiesMap)return publicPropertiesMap[tA](AA)},has(eA,tA){return tA in eA||tA in publicPropertiesMap}})):AA.proxy}const classifyRE=/(?:^|[-_])\w/g,classify=AA=>AA.replace(classifyRE,eA=>eA.toUpperCase()).replace(/[-_]/g,"");function getComponentName(AA,eA=!0){return isFunction$2(AA)?AA.displayName||AA.name:AA.name||eA&&AA.__name}function formatComponentName(AA,eA,tA=!1){let nA=getComponentName(eA);if(!nA&&eA.__file){const rA=eA.__file.match(/([^/\\]+)\.\w+$/);rA&&(nA=rA[1])}if(!nA&&AA&&AA.parent){const rA=oA=>{for(const aA in oA)if(oA[aA]===eA)return aA};nA=rA(AA.components||AA.parent.type.components)||rA(AA.appContext.components)}return nA?classify(nA):tA?"App":"Anonymous"}function isClassComponent(AA){return isFunction$2(AA)&&"__vccOpts"in AA}const computed=(AA,eA)=>computed$1(AA,eA,isInSSRComponentSetup);function h$1(AA,eA,tA){const nA=(oA,aA,iA)=>{setBlockTracking(-1);try{return createVNode(oA,aA,iA)}finally{setBlockTracking(1)}},rA=arguments.length;return rA===2?isObject$4(eA)&&!isArray$1(eA)?isVNode(eA)?nA(AA,null,[eA]):nA(AA,eA):nA(AA,null,eA):(rA>3?tA=Array.prototype.slice.call(arguments,2):rA===3&&isVNode(tA)&&(tA=[tA]),nA(AA,eA,tA))}function initCustomFormatter(){}function withMemo(AA,eA,tA,nA){const rA=tA[nA];if(rA&&isMemoSame(rA,AA))return rA;const oA=eA();return oA.memo=AA.slice(),oA.cacheIndex=nA,tA[nA]=oA}function isMemoSame(AA,eA){const tA=AA.memo;if(tA.length!=eA.length)return!1;for(let nA=0;nA0&¤tBlock&¤tBlock.push(AA),!0}const version$1="3.5.21",warn=NOOP,ErrorTypeStrings=ErrorTypeStrings$1,devtools=devtools$1,setDevtoolsHook=setDevtoolsHook$1,_ssrUtils={createComponentInstance,setupComponent,renderComponentRoot,setCurrentRenderingInstance,isVNode,normalizeVNode,getComponentPublicInstance,ensureValidVNode,pushWarningContext,popWarningContext},ssrUtils=_ssrUtils,resolveFilter=null,compatUtils=null,DeprecationTypes=null;/** +* @vue/runtime-dom v3.5.21 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let policy;const tt$1=typeof window<"u"&&window.trustedTypes;if(tt$1)try{policy=tt$1.createPolicy("vue",{createHTML:AA=>AA})}catch{}const unsafeToTrustedHTML=policy?AA=>policy.createHTML(AA):AA=>AA,svgNS="http://www.w3.org/2000/svg",mathmlNS="http://www.w3.org/1998/Math/MathML",doc=typeof document<"u"?document:null,templateContainer=doc&&doc.createElement("template"),nodeOps={insert:(AA,eA,tA)=>{eA.insertBefore(AA,tA||null)},remove:AA=>{const eA=AA.parentNode;eA&&eA.removeChild(AA)},createElement:(AA,eA,tA,nA)=>{const rA=eA==="svg"?doc.createElementNS(svgNS,AA):eA==="mathml"?doc.createElementNS(mathmlNS,AA):tA?doc.createElement(AA,{is:tA}):doc.createElement(AA);return AA==="select"&&nA&&nA.multiple!=null&&rA.setAttribute("multiple",nA.multiple),rA},createText:AA=>doc.createTextNode(AA),createComment:AA=>doc.createComment(AA),setText:(AA,eA)=>{AA.nodeValue=eA},setElementText:(AA,eA)=>{AA.textContent=eA},parentNode:AA=>AA.parentNode,nextSibling:AA=>AA.nextSibling,querySelector:AA=>doc.querySelector(AA),setScopeId(AA,eA){AA.setAttribute(eA,"")},insertStaticContent(AA,eA,tA,nA,rA,oA){const aA=tA?tA.previousSibling:eA.lastChild;if(rA&&(rA===oA||rA.nextSibling))for(;eA.insertBefore(rA.cloneNode(!0),tA),!(rA===oA||!(rA=rA.nextSibling)););else{templateContainer.innerHTML=unsafeToTrustedHTML(nA==="svg"?`${AA}`:nA==="mathml"?`${AA}`:AA);const iA=templateContainer.content;if(nA==="svg"||nA==="mathml"){const sA=iA.firstChild;for(;sA.firstChild;)iA.appendChild(sA.firstChild);iA.removeChild(sA)}eA.insertBefore(iA,tA)}return[aA?aA.nextSibling:eA.firstChild,tA?tA.previousSibling:eA.lastChild]}},TRANSITION$1="transition",ANIMATION="animation",vtcKey=Symbol("_vtc"),DOMTransitionPropsValidators={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},TransitionPropsValidators=extend$2({},BaseTransitionPropsValidators,DOMTransitionPropsValidators),decorate$1=AA=>(AA.displayName="Transition",AA.props=TransitionPropsValidators,AA),Transition=decorate$1((AA,{slots:eA})=>h$1(BaseTransition,resolveTransitionProps(AA),eA)),callHook=(AA,eA=[])=>{isArray$1(AA)?AA.forEach(tA=>tA(...eA)):AA&&AA(...eA)},hasExplicitCallback=AA=>AA?isArray$1(AA)?AA.some(eA=>eA.length>1):AA.length>1:!1;function resolveTransitionProps(AA){const eA={};for(const MA in AA)MA in DOMTransitionPropsValidators||(eA[MA]=AA[MA]);if(AA.css===!1)return eA;const{name:tA="v",type:nA,duration:rA,enterFromClass:oA=`${tA}-enter-from`,enterActiveClass:aA=`${tA}-enter-active`,enterToClass:iA=`${tA}-enter-to`,appearFromClass:sA=oA,appearActiveClass:cA=aA,appearToClass:uA=iA,leaveFromClass:lA=`${tA}-leave-from`,leaveActiveClass:gA=`${tA}-leave-active`,leaveToClass:QA=`${tA}-leave-to`}=AA,dA=normalizeDuration(rA),fA=dA&&dA[0],hA=dA&&dA[1],{onBeforeEnter:TA,onEnter:pA,onEnterCancelled:mA,onLeave:EA,onLeaveCancelled:BA,onBeforeAppear:CA=TA,onAppear:IA=pA,onAppearCancelled:yA=mA}=eA,_A=(MA,xA,SA,OA)=>{MA._enterCancelled=OA,removeTransitionClass(MA,xA?uA:iA),removeTransitionClass(MA,xA?cA:aA),SA&&SA()},DA=(MA,xA)=>{MA._isLeaving=!1,removeTransitionClass(MA,lA),removeTransitionClass(MA,QA),removeTransitionClass(MA,gA),xA&&xA()},HA=MA=>(xA,SA)=>{const OA=MA?IA:pA,FA=()=>_A(xA,MA,SA);callHook(OA,[xA,FA]),nextFrame(()=>{removeTransitionClass(xA,MA?sA:oA),addTransitionClass(xA,MA?uA:iA),hasExplicitCallback(OA)||whenTransitionEnds(xA,nA,fA,FA)})};return extend$2(eA,{onBeforeEnter(MA){callHook(TA,[MA]),addTransitionClass(MA,oA),addTransitionClass(MA,aA)},onBeforeAppear(MA){callHook(CA,[MA]),addTransitionClass(MA,sA),addTransitionClass(MA,cA)},onEnter:HA(!1),onAppear:HA(!0),onLeave(MA,xA){MA._isLeaving=!0;const SA=()=>DA(MA,xA);addTransitionClass(MA,lA),MA._enterCancelled?(addTransitionClass(MA,gA),forceReflow()):(forceReflow(),addTransitionClass(MA,gA)),nextFrame(()=>{MA._isLeaving&&(removeTransitionClass(MA,lA),addTransitionClass(MA,QA),hasExplicitCallback(EA)||whenTransitionEnds(MA,nA,hA,SA))}),callHook(EA,[MA,SA])},onEnterCancelled(MA){_A(MA,!1,void 0,!0),callHook(mA,[MA])},onAppearCancelled(MA){_A(MA,!0,void 0,!0),callHook(yA,[MA])},onLeaveCancelled(MA){DA(MA),callHook(BA,[MA])}})}function normalizeDuration(AA){if(AA==null)return null;if(isObject$4(AA))return[NumberOf(AA.enter),NumberOf(AA.leave)];{const eA=NumberOf(AA);return[eA,eA]}}function NumberOf(AA){return toNumber(AA)}function addTransitionClass(AA,eA){eA.split(/\s+/).forEach(tA=>tA&&AA.classList.add(tA)),(AA[vtcKey]||(AA[vtcKey]=new Set)).add(eA)}function removeTransitionClass(AA,eA){eA.split(/\s+/).forEach(nA=>nA&&AA.classList.remove(nA));const tA=AA[vtcKey];tA&&(tA.delete(eA),tA.size||(AA[vtcKey]=void 0))}function nextFrame(AA){requestAnimationFrame(()=>{requestAnimationFrame(AA)})}let endId=0;function whenTransitionEnds(AA,eA,tA,nA){const rA=AA._endId=++endId,oA=()=>{rA===AA._endId&&nA()};if(tA!=null)return setTimeout(oA,tA);const{type:aA,timeout:iA,propCount:sA}=getTransitionInfo(AA,eA);if(!aA)return nA();const cA=aA+"end";let uA=0;const lA=()=>{AA.removeEventListener(cA,gA),oA()},gA=QA=>{QA.target===AA&&++uA>=sA&&lA()};setTimeout(()=>{uA(tA[dA]||"").split(", "),rA=nA(`${TRANSITION$1}Delay`),oA=nA(`${TRANSITION$1}Duration`),aA=getTimeout(rA,oA),iA=nA(`${ANIMATION}Delay`),sA=nA(`${ANIMATION}Duration`),cA=getTimeout(iA,sA);let uA=null,lA=0,gA=0;eA===TRANSITION$1?aA>0&&(uA=TRANSITION$1,lA=aA,gA=oA.length):eA===ANIMATION?cA>0&&(uA=ANIMATION,lA=cA,gA=sA.length):(lA=Math.max(aA,cA),uA=lA>0?aA>cA?TRANSITION$1:ANIMATION:null,gA=uA?uA===TRANSITION$1?oA.length:sA.length:0);const QA=uA===TRANSITION$1&&/\b(?:transform|all)(?:,|$)/.test(nA(`${TRANSITION$1}Property`).toString());return{type:uA,timeout:lA,propCount:gA,hasTransform:QA}}function getTimeout(AA,eA){for(;AA.lengthtoMs(tA)+toMs(AA[nA])))}function toMs(AA){return AA==="auto"?0:Number(AA.slice(0,-1).replace(",","."))*1e3}function forceReflow(){return document.body.offsetHeight}function patchClass(AA,eA,tA){const nA=AA[vtcKey];nA&&(eA=(eA?[eA,...nA]:[...nA]).join(" ")),eA==null?AA.removeAttribute("class"):tA?AA.setAttribute("class",eA):AA.className=eA}const vShowOriginalDisplay=Symbol("_vod"),vShowHidden=Symbol("_vsh"),vShow={name:"show",beforeMount(AA,{value:eA},{transition:tA}){AA[vShowOriginalDisplay]=AA.style.display==="none"?"":AA.style.display,tA&&eA?tA.beforeEnter(AA):setDisplay(AA,eA)},mounted(AA,{value:eA},{transition:tA}){tA&&eA&&tA.enter(AA)},updated(AA,{value:eA,oldValue:tA},{transition:nA}){!eA!=!tA&&(nA?eA?(nA.beforeEnter(AA),setDisplay(AA,!0),nA.enter(AA)):nA.leave(AA,()=>{setDisplay(AA,!1)}):setDisplay(AA,eA))},beforeUnmount(AA,{value:eA}){setDisplay(AA,eA)}};function setDisplay(AA,eA){AA.style.display=eA?AA[vShowOriginalDisplay]:"none",AA[vShowHidden]=!eA}function initVShowForSSR(){vShow.getSSRProps=({value:AA})=>{if(!AA)return{style:{display:"none"}}}}const CSS_VAR_TEXT=Symbol("");function useCssVars(AA){const eA=getCurrentInstance();if(!eA)return;const tA=eA.ut=(rA=AA(eA.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${eA.uid}"]`)).forEach(oA=>setVarsOnNode(oA,rA))},nA=()=>{const rA=AA(eA.proxy);eA.ce?setVarsOnNode(eA.ce,rA):setVarsOnVNode(eA.subTree,rA),tA(rA)};onBeforeUpdate(()=>{queuePostFlushCb(nA)}),onMounted(()=>{watch$1(nA,NOOP,{flush:"post"});const rA=new MutationObserver(nA);rA.observe(eA.subTree.el.parentNode,{childList:!0}),onUnmounted(()=>rA.disconnect())})}function setVarsOnVNode(AA,eA){if(AA.shapeFlag&128){const tA=AA.suspense;AA=tA.activeBranch,tA.pendingBranch&&!tA.isHydrating&&tA.effects.push(()=>{setVarsOnVNode(tA.activeBranch,eA)})}for(;AA.component;)AA=AA.component.subTree;if(AA.shapeFlag&1&&AA.el)setVarsOnNode(AA.el,eA);else if(AA.type===Fragment)AA.children.forEach(tA=>setVarsOnVNode(tA,eA));else if(AA.type===Static){let{el:tA,anchor:nA}=AA;for(;tA&&(setVarsOnNode(tA,eA),tA!==nA);)tA=tA.nextSibling}}function setVarsOnNode(AA,eA){if(AA.nodeType===1){const tA=AA.style;let nA="";for(const rA in eA){const oA=normalizeCssVarValue(eA[rA]);tA.setProperty(`--${rA}`,oA),nA+=`--${rA}: ${oA};`}tA[CSS_VAR_TEXT]=nA}}const displayRE=/(?:^|;)\s*display\s*:/;function patchStyle(AA,eA,tA){const nA=AA.style,rA=isString$2(tA);let oA=!1;if(tA&&!rA){if(eA)if(isString$2(eA))for(const aA of eA.split(";")){const iA=aA.slice(0,aA.indexOf(":")).trim();tA[iA]==null&&setStyle(nA,iA,"")}else for(const aA in eA)tA[aA]==null&&setStyle(nA,aA,"");for(const aA in tA)aA==="display"&&(oA=!0),setStyle(nA,aA,tA[aA])}else if(rA){if(eA!==tA){const aA=nA[CSS_VAR_TEXT];aA&&(tA+=";"+aA),nA.cssText=tA,oA=displayRE.test(tA)}}else eA&&AA.removeAttribute("style");vShowOriginalDisplay in AA&&(AA[vShowOriginalDisplay]=oA?nA.display:"",AA[vShowHidden]&&(nA.display="none"))}const importantRE=/\s*!important$/;function setStyle(AA,eA,tA){if(isArray$1(tA))tA.forEach(nA=>setStyle(AA,eA,nA));else if(tA==null&&(tA=""),eA.startsWith("--"))AA.setProperty(eA,tA);else{const nA=autoPrefix(AA,eA);importantRE.test(tA)?AA.setProperty(hyphenate(nA),tA.replace(importantRE,""),"important"):AA[nA]=tA}}const prefixes=["Webkit","Moz","ms"],prefixCache={};function autoPrefix(AA,eA){const tA=prefixCache[eA];if(tA)return tA;let nA=camelize(eA);if(nA!=="filter"&&nA in AA)return prefixCache[eA]=nA;nA=capitalize$1(nA);for(let rA=0;rAcachedNow||(p$3.then(()=>cachedNow=0),cachedNow=Date.now());function createInvoker(AA,eA){const tA=nA=>{if(!nA._vts)nA._vts=Date.now();else if(nA._vts<=tA.attached)return;callWithAsyncErrorHandling(patchStopImmediatePropagation(nA,tA.value),eA,5,[nA])};return tA.value=AA,tA.attached=getNow(),tA}function patchStopImmediatePropagation(AA,eA){if(isArray$1(eA)){const tA=AA.stopImmediatePropagation;return AA.stopImmediatePropagation=()=>{tA.call(AA),AA._stopped=!0},eA.map(nA=>rA=>!rA._stopped&&nA&&nA(rA))}else return eA}const isNativeOn=AA=>AA.charCodeAt(0)===111&&AA.charCodeAt(1)===110&&AA.charCodeAt(2)>96&&AA.charCodeAt(2)<123,patchProp=(AA,eA,tA,nA,rA,oA)=>{const aA=rA==="svg";eA==="class"?patchClass(AA,nA,aA):eA==="style"?patchStyle(AA,tA,nA):isOn(eA)?isModelListener(eA)||patchEvent(AA,eA,tA,nA,oA):(eA[0]==="."?(eA=eA.slice(1),!0):eA[0]==="^"?(eA=eA.slice(1),!1):shouldSetAsProp(AA,eA,nA,aA))?(patchDOMProp(AA,eA,nA),!AA.tagName.includes("-")&&(eA==="value"||eA==="checked"||eA==="selected")&&patchAttr(AA,eA,nA,aA,oA,eA!=="value")):AA._isVueCE&&(/[A-Z]/.test(eA)||!isString$2(nA))?patchDOMProp(AA,camelize(eA),nA,oA,eA):(eA==="true-value"?AA._trueValue=nA:eA==="false-value"&&(AA._falseValue=nA),patchAttr(AA,eA,nA,aA))};function shouldSetAsProp(AA,eA,tA,nA){if(nA)return!!(eA==="innerHTML"||eA==="textContent"||eA in AA&&isNativeOn(eA)&&isFunction$2(tA));if(eA==="spellcheck"||eA==="draggable"||eA==="translate"||eA==="autocorrect"||eA==="form"||eA==="list"&&AA.tagName==="INPUT"||eA==="type"&&AA.tagName==="TEXTAREA")return!1;if(eA==="width"||eA==="height"){const rA=AA.tagName;if(rA==="IMG"||rA==="VIDEO"||rA==="CANVAS"||rA==="SOURCE")return!1}return isNativeOn(eA)&&isString$2(tA)?!1:eA in AA}const REMOVAL={};function defineCustomElement(AA,eA,tA){let nA=defineComponent(AA,eA);isPlainObject(nA)&&(nA=extend$2({},nA,eA));class rA extends VueElement{constructor(aA){super(nA,aA,tA)}}return rA.def=nA,rA}const defineSSRCustomElement=(AA,eA)=>defineCustomElement(AA,eA,createSSRApp),BaseClass=typeof HTMLElement<"u"?HTMLElement:class{};class VueElement extends BaseClass{constructor(eA,tA={},nA=createApp){super(),this._def=eA,this._props=tA,this._createApp=nA,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._ob=null,this.shadowRoot&&nA!==createApp?this._root=this.shadowRoot:eA.shadowRoot!==!1?(this.attachShadow({mode:"open"}),this._root=this.shadowRoot):this._root=this}connectedCallback(){if(!this.isConnected)return;!this.shadowRoot&&!this._resolved&&this._parseSlots(),this._connected=!0;let eA=this;for(;eA=eA&&(eA.parentNode||eA.host);)if(eA instanceof VueElement){this._parent=eA;break}this._instance||(this._resolved?this._mount(this._def):eA&&eA._pendingResolve?this._pendingResolve=eA._pendingResolve.then(()=>{this._pendingResolve=void 0,this._resolveDef()}):this._resolveDef())}_setParent(eA=this._parent){eA&&(this._instance.parent=eA._instance,this._inheritParentContext(eA))}_inheritParentContext(eA=this._parent){eA&&this._app&&Object.setPrototypeOf(this._app._context.provides,eA._instance.provides)}disconnectedCallback(){this._connected=!1,nextTick(()=>{this._connected||(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null)})}_resolveDef(){if(this._pendingResolve)return;for(let nA=0;nA{for(const rA of nA)this._setAttr(rA.attributeName)}),this._ob.observe(this,{attributes:!0});const eA=(nA,rA=!1)=>{this._resolved=!0,this._pendingResolve=void 0;const{props:oA,styles:aA}=nA;let iA;if(oA&&!isArray$1(oA))for(const sA in oA){const cA=oA[sA];(cA===Number||cA&&cA.type===Number)&&(sA in this._props&&(this._props[sA]=toNumber(this._props[sA])),(iA||(iA=Object.create(null)))[camelize(sA)]=!0)}this._numberProps=iA,this._resolveProps(nA),this.shadowRoot&&this._applyStyles(aA),this._mount(nA)},tA=this._def.__asyncLoader;tA?this._pendingResolve=tA().then(nA=>{nA.configureApp=this._def.configureApp,eA(this._def=nA,!0)}):eA(this._def)}_mount(eA){this._app=this._createApp(eA),this._inheritParentContext(),eA.configureApp&&eA.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);const tA=this._instance&&this._instance.exposed;if(tA)for(const nA in tA)hasOwn$1(this,nA)||Object.defineProperty(this,nA,{get:()=>unref(tA[nA])})}_resolveProps(eA){const{props:tA}=eA,nA=isArray$1(tA)?tA:Object.keys(tA||{});for(const rA of Object.keys(this))rA[0]!=="_"&&nA.includes(rA)&&this._setProp(rA,this[rA]);for(const rA of nA.map(camelize))Object.defineProperty(this,rA,{get(){return this._getProp(rA)},set(oA){this._setProp(rA,oA,!0,!0)}})}_setAttr(eA){if(eA.startsWith("data-v-"))return;const tA=this.hasAttribute(eA);let nA=tA?this.getAttribute(eA):REMOVAL;const rA=camelize(eA);tA&&this._numberProps&&this._numberProps[rA]&&(nA=toNumber(nA)),this._setProp(rA,nA,!1,!0)}_getProp(eA){return this._props[eA]}_setProp(eA,tA,nA=!0,rA=!1){if(tA!==this._props[eA]&&(tA===REMOVAL?delete this._props[eA]:(this._props[eA]=tA,eA==="key"&&this._app&&(this._app._ceVNode.key=tA)),rA&&this._instance&&this._update(),nA)){const oA=this._ob;oA&&oA.disconnect(),tA===!0?this.setAttribute(hyphenate(eA),""):typeof tA=="string"||typeof tA=="number"?this.setAttribute(hyphenate(eA),tA+""):tA||this.removeAttribute(hyphenate(eA)),oA&&oA.observe(this,{attributes:!0})}}_update(){const eA=this._createVNode();this._app&&(eA.appContext=this._app._context),render$1(eA,this._root)}_createVNode(){const eA={};this.shadowRoot||(eA.onVnodeMounted=eA.onVnodeUpdated=this._renderSlots.bind(this));const tA=createVNode(this._def,extend$2(eA,this._props));return this._instance||(tA.ce=nA=>{this._instance=nA,nA.ce=this,nA.isCE=!0;const rA=(oA,aA)=>{this.dispatchEvent(new CustomEvent(oA,isPlainObject(aA[0])?extend$2({detail:aA},aA[0]):{detail:aA}))};nA.emit=(oA,...aA)=>{rA(oA,aA),hyphenate(oA)!==oA&&rA(hyphenate(oA),aA)},this._setParent()}),tA}_applyStyles(eA,tA){if(!eA)return;if(tA){if(tA===this._def||this._styleChildren.has(tA))return;this._styleChildren.add(tA)}const nA=this._nonce;for(let rA=eA.length-1;rA>=0;rA--){const oA=document.createElement("style");nA&&oA.setAttribute("nonce",nA),oA.textContent=eA[rA],this.shadowRoot.prepend(oA)}}_parseSlots(){const eA=this._slots={};let tA;for(;tA=this.firstChild;){const nA=tA.nodeType===1&&tA.getAttribute("slot")||"default";(eA[nA]||(eA[nA]=[])).push(tA),this.removeChild(tA)}}_renderSlots(){const eA=(this._teleportTarget||this).querySelectorAll("slot"),tA=this._instance.type.__scopeId;for(let nA=0;nA(delete AA.props.mode,AA),TransitionGroupImpl=decorate({name:"TransitionGroup",props:extend$2({},TransitionPropsValidators,{tag:String,moveClass:String}),setup(AA,{slots:eA}){const tA=getCurrentInstance(),nA=useTransitionState();let rA,oA;return onUpdated(()=>{if(!rA.length)return;const aA=AA.moveClass||`${AA.name||"v"}-move`;if(!hasCSSTransform(rA[0].el,tA.vnode.el,aA)){rA=[];return}rA.forEach(callPendingCbs),rA.forEach(recordPosition);const iA=rA.filter(applyTranslation);forceReflow(),iA.forEach(sA=>{const cA=sA.el,uA=cA.style;addTransitionClass(cA,aA),uA.transform=uA.webkitTransform=uA.transitionDuration="";const lA=cA[moveCbKey]=gA=>{gA&&gA.target!==cA||(!gA||gA.propertyName.endsWith("transform"))&&(cA.removeEventListener("transitionend",lA),cA[moveCbKey]=null,removeTransitionClass(cA,aA))};cA.addEventListener("transitionend",lA)}),rA=[]}),()=>{const aA=toRaw(AA),iA=resolveTransitionProps(aA);let sA=aA.tag||Fragment;if(rA=[],oA)for(let cA=0;cA{iA.split(/\s+/).forEach(sA=>sA&&nA.classList.remove(sA))}),tA.split(/\s+/).forEach(iA=>iA&&nA.classList.add(iA)),nA.style.display="none";const oA=eA.nodeType===1?eA:eA.parentNode;oA.appendChild(nA);const{hasTransform:aA}=getTransitionInfo(nA);return oA.removeChild(nA),aA}const getModelAssigner=AA=>{const eA=AA.props["onUpdate:modelValue"]||!1;return isArray$1(eA)?tA=>invokeArrayFns(eA,tA):eA};function onCompositionStart(AA){AA.target.composing=!0}function onCompositionEnd(AA){const eA=AA.target;eA.composing&&(eA.composing=!1,eA.dispatchEvent(new Event("input")))}const assignKey=Symbol("_assign"),vModelText={created(AA,{modifiers:{lazy:eA,trim:tA,number:nA}},rA){AA[assignKey]=getModelAssigner(rA);const oA=nA||rA.props&&rA.props.type==="number";addEventListener(AA,eA?"change":"input",aA=>{if(aA.target.composing)return;let iA=AA.value;tA&&(iA=iA.trim()),oA&&(iA=looseToNumber(iA)),AA[assignKey](iA)}),tA&&addEventListener(AA,"change",()=>{AA.value=AA.value.trim()}),eA||(addEventListener(AA,"compositionstart",onCompositionStart),addEventListener(AA,"compositionend",onCompositionEnd),addEventListener(AA,"change",onCompositionEnd))},mounted(AA,{value:eA}){AA.value=eA??""},beforeUpdate(AA,{value:eA,oldValue:tA,modifiers:{lazy:nA,trim:rA,number:oA}},aA){if(AA[assignKey]=getModelAssigner(aA),AA.composing)return;const iA=(oA||AA.type==="number")&&!/^0\d/.test(AA.value)?looseToNumber(AA.value):AA.value,sA=eA??"";iA!==sA&&(document.activeElement===AA&&AA.type!=="range"&&(nA&&eA===tA||rA&&AA.value.trim()===sA)||(AA.value=sA))}},vModelCheckbox={deep:!0,created(AA,eA,tA){AA[assignKey]=getModelAssigner(tA),addEventListener(AA,"change",()=>{const nA=AA._modelValue,rA=getValue(AA),oA=AA.checked,aA=AA[assignKey];if(isArray$1(nA)){const iA=looseIndexOf(nA,rA),sA=iA!==-1;if(oA&&!sA)aA(nA.concat(rA));else if(!oA&&sA){const cA=[...nA];cA.splice(iA,1),aA(cA)}}else if(isSet(nA)){const iA=new Set(nA);oA?iA.add(rA):iA.delete(rA),aA(iA)}else aA(getCheckboxValue(AA,oA))})},mounted:setChecked,beforeUpdate(AA,eA,tA){AA[assignKey]=getModelAssigner(tA),setChecked(AA,eA,tA)}};function setChecked(AA,{value:eA,oldValue:tA},nA){AA._modelValue=eA;let rA;if(isArray$1(eA))rA=looseIndexOf(eA,nA.props.value)>-1;else if(isSet(eA))rA=eA.has(nA.props.value);else{if(eA===tA)return;rA=looseEqual(eA,getCheckboxValue(AA,!0))}AA.checked!==rA&&(AA.checked=rA)}const vModelRadio={created(AA,{value:eA},tA){AA.checked=looseEqual(eA,tA.props.value),AA[assignKey]=getModelAssigner(tA),addEventListener(AA,"change",()=>{AA[assignKey](getValue(AA))})},beforeUpdate(AA,{value:eA,oldValue:tA},nA){AA[assignKey]=getModelAssigner(nA),eA!==tA&&(AA.checked=looseEqual(eA,nA.props.value))}},vModelSelect={deep:!0,created(AA,{value:eA,modifiers:{number:tA}},nA){const rA=isSet(eA);addEventListener(AA,"change",()=>{const oA=Array.prototype.filter.call(AA.options,aA=>aA.selected).map(aA=>tA?looseToNumber(getValue(aA)):getValue(aA));AA[assignKey](AA.multiple?rA?new Set(oA):oA:oA[0]),AA._assigning=!0,nextTick(()=>{AA._assigning=!1})}),AA[assignKey]=getModelAssigner(nA)},mounted(AA,{value:eA}){setSelected(AA,eA)},beforeUpdate(AA,eA,tA){AA[assignKey]=getModelAssigner(tA)},updated(AA,{value:eA}){AA._assigning||setSelected(AA,eA)}};function setSelected(AA,eA){const tA=AA.multiple,nA=isArray$1(eA);if(!(tA&&!nA&&!isSet(eA))){for(let rA=0,oA=AA.options.length;rAString(cA)===String(iA)):aA.selected=looseIndexOf(eA,iA)>-1}else aA.selected=eA.has(iA);else if(looseEqual(getValue(aA),eA)){AA.selectedIndex!==rA&&(AA.selectedIndex=rA);return}}!tA&&AA.selectedIndex!==-1&&(AA.selectedIndex=-1)}}function getValue(AA){return"_value"in AA?AA._value:AA.value}function getCheckboxValue(AA,eA){const tA=eA?"_trueValue":"_falseValue";return tA in AA?AA[tA]:eA}const vModelDynamic={created(AA,eA,tA){callModelHook(AA,eA,tA,null,"created")},mounted(AA,eA,tA){callModelHook(AA,eA,tA,null,"mounted")},beforeUpdate(AA,eA,tA,nA){callModelHook(AA,eA,tA,nA,"beforeUpdate")},updated(AA,eA,tA,nA){callModelHook(AA,eA,tA,nA,"updated")}};function resolveDynamicModel(AA,eA){switch(AA){case"SELECT":return vModelSelect;case"TEXTAREA":return vModelText;default:switch(eA){case"checkbox":return vModelCheckbox;case"radio":return vModelRadio;default:return vModelText}}}function callModelHook(AA,eA,tA,nA,rA){const aA=resolveDynamicModel(AA.tagName,tA.props&&tA.props.type)[rA];aA&&aA(AA,eA,tA,nA)}function initVModelForSSR(){vModelText.getSSRProps=({value:AA})=>({value:AA}),vModelRadio.getSSRProps=({value:AA},eA)=>{if(eA.props&&looseEqual(eA.props.value,AA))return{checked:!0}},vModelCheckbox.getSSRProps=({value:AA},eA)=>{if(isArray$1(AA)){if(eA.props&&looseIndexOf(AA,eA.props.value)>-1)return{checked:!0}}else if(isSet(AA)){if(eA.props&&AA.has(eA.props.value))return{checked:!0}}else if(AA)return{checked:!0}},vModelDynamic.getSSRProps=(AA,eA)=>{if(typeof eA.type!="string")return;const tA=resolveDynamicModel(eA.type.toUpperCase(),eA.props&&eA.props.type);if(tA.getSSRProps)return tA.getSSRProps(AA,eA)}}const systemModifiers=["ctrl","shift","alt","meta"],modifierGuards={stop:AA=>AA.stopPropagation(),prevent:AA=>AA.preventDefault(),self:AA=>AA.target!==AA.currentTarget,ctrl:AA=>!AA.ctrlKey,shift:AA=>!AA.shiftKey,alt:AA=>!AA.altKey,meta:AA=>!AA.metaKey,left:AA=>"button"in AA&&AA.button!==0,middle:AA=>"button"in AA&&AA.button!==1,right:AA=>"button"in AA&&AA.button!==2,exact:(AA,eA)=>systemModifiers.some(tA=>AA[`${tA}Key`]&&!eA.includes(tA))},withModifiers=(AA,eA)=>{const tA=AA._withMods||(AA._withMods={}),nA=eA.join(".");return tA[nA]||(tA[nA]=(rA,...oA)=>{for(let aA=0;aA{const tA=AA._withKeys||(AA._withKeys={}),nA=eA.join(".");return tA[nA]||(tA[nA]=rA=>{if(!("key"in rA))return;const oA=hyphenate(rA.key);if(eA.some(aA=>aA===oA||keyNames[aA]===oA))return AA(rA)})},rendererOptions=extend$2({patchProp},nodeOps);let renderer,enabledHydration=!1;function ensureRenderer(){return renderer||(renderer=createRenderer(rendererOptions))}function ensureHydrationRenderer(){return renderer=enabledHydration?renderer:createHydrationRenderer(rendererOptions),enabledHydration=!0,renderer}const render$1=(...AA)=>{ensureRenderer().render(...AA)},hydrate=(...AA)=>{ensureHydrationRenderer().hydrate(...AA)},createApp=(...AA)=>{const eA=ensureRenderer().createApp(...AA),{mount:tA}=eA;return eA.mount=nA=>{const rA=normalizeContainer(nA);if(!rA)return;const oA=eA._component;!isFunction$2(oA)&&!oA.render&&!oA.template&&(oA.template=rA.innerHTML),rA.nodeType===1&&(rA.textContent="");const aA=tA(rA,!1,resolveRootNamespace(rA));return rA instanceof Element&&(rA.removeAttribute("v-cloak"),rA.setAttribute("data-v-app","")),aA},eA},createSSRApp=(...AA)=>{const eA=ensureHydrationRenderer().createApp(...AA),{mount:tA}=eA;return eA.mount=nA=>{const rA=normalizeContainer(nA);if(rA)return tA(rA,!0,resolveRootNamespace(rA))},eA};function resolveRootNamespace(AA){if(AA instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&AA instanceof MathMLElement)return"mathml"}function normalizeContainer(AA){return isString$2(AA)?document.querySelector(AA):AA}let ssrDirectiveInitialized=!1;const initDirectivesForSSR=()=>{ssrDirectiveInitialized||(ssrDirectiveInitialized=!0,initVModelForSSR(),initVShowForSSR())};/** +* vue v3.5.21 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/const compile$4=()=>{},Vue=Object.freeze(Object.defineProperty({__proto__:null,BaseTransition,BaseTransitionPropsValidators,Comment:Comment$1,DeprecationTypes,EffectScope,ErrorCodes,ErrorTypeStrings,Fragment,KeepAlive,ReactiveEffect,Static,Suspense,Teleport,Text:Text$2,TrackOpTypes,Transition,TransitionGroup,TriggerOpTypes,VueElement,assertNumber,callWithAsyncErrorHandling,callWithErrorHandling,camelize,capitalize:capitalize$1,cloneVNode,compatUtils,compile:compile$4,computed,createApp,createBlock,createCommentVNode,createElementBlock,createElementVNode:createBaseVNode,createHydrationRenderer,createPropsRestProxy,createRenderer,createSSRApp,createSlots,createStaticVNode,createTextVNode,createVNode,customRef,defineAsyncComponent,defineComponent,defineCustomElement,defineEmits,defineExpose,defineModel,defineOptions,defineProps,defineSSRCustomElement,defineSlots,devtools,effect,effectScope,getCurrentInstance,getCurrentScope,getCurrentWatcher,getTransitionRawChildren,guardReactiveProps,h:h$1,handleError,hasInjectionContext,hydrate,hydrateOnIdle,hydrateOnInteraction,hydrateOnMediaQuery,hydrateOnVisible,initCustomFormatter,initDirectivesForSSR,inject,isMemoSame,isProxy,isReactive,isReadonly,isRef,isRuntimeOnly,isShallow,isVNode,markRaw,mergeDefaults,mergeModels,mergeProps,nextTick,normalizeClass,normalizeProps,normalizeStyle,onActivated,onBeforeMount,onBeforeUnmount,onBeforeUpdate,onDeactivated,onErrorCaptured,onMounted,onRenderTracked,onRenderTriggered,onScopeDispose,onServerPrefetch,onUnmounted,onUpdated,onWatcherCleanup,openBlock,popScopeId,provide,proxyRefs,pushScopeId,queuePostFlushCb,reactive,readonly,ref,registerRuntimeCompiler,render:render$1,renderList,renderSlot,resolveComponent,resolveDirective,resolveDynamicComponent,resolveFilter,resolveTransitionHooks,setBlockTracking,setDevtoolsHook,setTransitionHooks,shallowReactive,shallowReadonly,shallowRef,ssrContextKey,ssrUtils,stop,toDisplayString,toHandlerKey,toHandlers,toRaw,toRef:toRef$1,toRefs,toValue,transformVNodeArgs,triggerRef,unref,useAttrs,useCssModule,useCssVars,useHost,useId,useModel,useSSRContext,useShadowRoot,useSlots,useTemplateRef,useTransitionState,vModelCheckbox,vModelDynamic,vModelRadio,vModelSelect,vModelText,vShow,version:version$1,warn,watch:watch$1,watchEffect,watchPostEffect,watchSyncEffect,withAsyncContext,withCtx,withDefaults,withDirectives,withKeys,withMemo,withModifiers,withScopeId},Symbol.toStringTag,{value:"Module"})),configData={title:"SeaBlock Wiki",description:"The comprehensive guide to SeaBlock mod for Factorio",base:"/SeaBlock/",head:[["link",{rel:"icon",href:"/favicon.ico"}]],themeConfig:{repo:"modded-factorio/seablock",repoLabel:"GitHub",nav:[{text:"Home",link:"/"},{text:"Getting Started",link:"/getting-started/"},{text:"Guides",link:"/guides/"},{text:"Reference",link:"/reference/"}],sidebar:{"/getting-started/":[{text:"Getting Started",items:[{text:"Introduction",link:"/getting-started/"},{text:"Installation",link:"/getting-started/installation"},{text:"First Steps",link:"/getting-started/first-steps"}]}],"/guides/":[{text:"Guides",items:[{text:"Overview",link:"/guides/"},{text:"Early Game",link:"/guides/early-game"},{text:"Mid Game",link:"/guides/mid-game"},{text:"Late Game",link:"/guides/late-game"}]}],"/reference/":[{text:"Reference",items:[{text:"Overview",link:"/reference/"},{text:"Recipes",link:"/reference/recipes"},{text:"Technologies",link:"/reference/technologies"},{text:"Items",link:"/reference/items"}]}]},socialLinks:[{icon:"github",link:"https://github.com/modded-factorio/SeaBlock"},{icon:"reddit",link:"https://www.reddit.com/r/SeaBlock"},{icon:"discord",link:"https://discord.gg/0lErw1dQK2Uo9H8y"}],footer:{message:"Built with VitePress and ❤️ for the SeaBlock community",copyright:"Copyright © 2025 SeaBlock Wiki"},search:{provider:"local"},editLink:{pattern:"https://github.com/modded-factorio/SeaBlock/new/wiki/?filename=:path",text:"Edit this page on GitHub"},lastUpdated:{text:"Last updated",formatOptions:{dateStyle:"short",timeStyle:"medium"}}},markdown:{lineNumbers:!0,theme:{light:"github-light",dark:"github-dark"}},build:{outDir:"dist",assetsDir:"assets"},ignoreDeadLinks:!0,server:{port:5173,host:"0.0.0.0"},preview:{port:4173,host:"0.0.0.0"}},siteData={...configData,lang:"en-US",head:[],locales:{}};function tryOnScopeDispose$1(AA){return getCurrentScope()?(onScopeDispose(AA),!0):!1}const localProvidedStateMap=new WeakMap,injectLocal=(...AA)=>{var eA;const tA=AA[0],nA=(eA=getCurrentInstance())==null?void 0:eA.proxy;if(nA==null&&!hasInjectionContext())throw new Error("injectLocal must be called in setup");return nA&&localProvidedStateMap.has(nA)&&tA in localProvidedStateMap.get(nA)?localProvidedStateMap.get(nA)[tA]:inject(...AA)},isClient=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const toString$1=Object.prototype.toString,isObject$3=AA=>toString$1.call(AA)==="[object Object]",noop=()=>{},isIOS=getIsIOS();function getIsIOS(){var AA,eA;return isClient&&((AA=window==null?void 0:window.navigator)==null?void 0:AA.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((eA=window==null?void 0:window.navigator)==null?void 0:eA.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}function createFilterWrapper(AA,eA){function tA(...nA){return new Promise((rA,oA)=>{Promise.resolve(AA(()=>eA.apply(this,nA),{fn:eA,thisArg:this,args:nA})).then(rA).catch(oA)})}return tA}const bypassFilter=AA=>AA();function debounceFilter(AA,eA={}){let tA,nA,rA=noop;const oA=sA=>{clearTimeout(sA),rA(),rA=noop};let aA;return sA=>{const cA=toValue(AA),uA=toValue(eA.maxWait);return tA&&oA(tA),cA<=0||uA!==void 0&&uA<=0?(nA&&(oA(nA),nA=null),Promise.resolve(sA())):new Promise((lA,gA)=>{rA=eA.rejectOnCancel?gA:lA,aA=sA,uA&&!nA&&(nA=setTimeout(()=>{tA&&oA(tA),nA=null,lA(aA())},uA)),tA=setTimeout(()=>{nA&&oA(nA),nA=null,lA(sA())},cA)})}}function throttleFilter(...AA){let eA=0,tA,nA=!0,rA=noop,oA,aA,iA,sA,cA;!isRef(AA[0])&&typeof AA[0]=="object"?{delay:aA,trailing:iA=!0,leading:sA=!0,rejectOnCancel:cA=!1}=AA[0]:[aA,iA=!0,sA=!0,cA=!1]=AA;const uA=()=>{tA&&(clearTimeout(tA),tA=void 0,rA(),rA=noop)};return gA=>{const QA=toValue(aA),dA=Date.now()-eA,fA=()=>oA=gA();return uA(),QA<=0?(eA=Date.now(),fA()):(dA>QA&&(sA||!nA)?(eA=Date.now(),fA()):iA&&(oA=new Promise((hA,TA)=>{rA=cA?TA:hA,tA=setTimeout(()=>{eA=Date.now(),nA=!0,hA(fA()),uA()},Math.max(0,QA-dA))})),!sA&&!tA&&(tA=setTimeout(()=>nA=!0,QA)),nA=!1,oA)}}function pausableFilter(AA=bypassFilter,eA={}){const{initialState:tA="active"}=eA,nA=toRef(tA==="active");function rA(){nA.value=!1}function oA(){nA.value=!0}const aA=(...iA)=>{nA.value&&AA(...iA)};return{isActive:readonly(nA),pause:rA,resume:oA,eventFilter:aA}}function pxValue(AA){return AA.endsWith("rem")?Number.parseFloat(AA)*16:Number.parseFloat(AA)}function getLifeCycleTarget(AA){return getCurrentInstance()}function toArray$3(AA){return Array.isArray(AA)?AA:[AA]}function toRef(...AA){if(AA.length!==1)return toRef$1(...AA);const eA=AA[0];return typeof eA=="function"?readonly(customRef(()=>({get:eA,set:noop}))):ref(eA)}function useDebounceFn(AA,eA=200,tA={}){return createFilterWrapper(debounceFilter(eA,tA),AA)}function useThrottleFn(AA,eA=200,tA=!1,nA=!0,rA=!1){return createFilterWrapper(throttleFilter(eA,tA,nA,rA),AA)}function watchWithFilter(AA,eA,tA={}){const{eventFilter:nA=bypassFilter,...rA}=tA;return watch$1(AA,createFilterWrapper(nA,eA),rA)}function watchPausable(AA,eA,tA={}){const{eventFilter:nA,initialState:rA="active",...oA}=tA,{eventFilter:aA,pause:iA,resume:sA,isActive:cA}=pausableFilter(nA,{initialState:rA});return{stop:watchWithFilter(AA,eA,{...oA,eventFilter:aA}),pause:iA,resume:sA,isActive:cA}}function tryOnMounted(AA,eA=!0,tA){getLifeCycleTarget()?onMounted(AA,tA):eA?AA():nextTick(AA)}function watchDebounced(AA,eA,tA={}){const{debounce:nA=0,maxWait:rA=void 0,...oA}=tA;return watchWithFilter(AA,eA,{...oA,eventFilter:debounceFilter(nA,{maxWait:rA})})}function watchImmediate(AA,eA,tA){return watch$1(AA,eA,{...tA,immediate:!0})}function computedAsync(AA,eA,tA){let nA;isRef(tA)?nA={evaluating:tA}:nA={};const{lazy:rA=!1,evaluating:oA=void 0,shallow:aA=!0,onError:iA=noop}=nA,sA=shallowRef(!rA),cA=aA?shallowRef(eA):ref(eA);let uA=0;return watchEffect(async lA=>{if(!sA.value)return;uA++;const gA=uA;let QA=!1;oA&&Promise.resolve().then(()=>{oA.value=!0});try{const dA=await AA(fA=>{lA(()=>{oA&&(oA.value=!1),QA||fA()})});gA===uA&&(cA.value=dA)}catch(dA){iA(dA)}finally{oA&&gA===uA&&(oA.value=!1),QA=!0}}),rA?computed(()=>(sA.value=!0,cA.value)):cA}const defaultWindow=isClient?window:void 0;function unrefElement$1(AA){var eA;const tA=toValue(AA);return(eA=tA==null?void 0:tA.$el)!=null?eA:tA}function useEventListener(...AA){const eA=[],tA=()=>{eA.forEach(iA=>iA()),eA.length=0},nA=(iA,sA,cA,uA)=>(iA.addEventListener(sA,cA,uA),()=>iA.removeEventListener(sA,cA,uA)),rA=computed(()=>{const iA=toArray$3(toValue(AA[0])).filter(sA=>sA!=null);return iA.every(sA=>typeof sA!="string")?iA:void 0}),oA=watchImmediate(()=>{var iA,sA;return[(sA=(iA=rA.value)==null?void 0:iA.map(cA=>unrefElement$1(cA)))!=null?sA:[defaultWindow].filter(cA=>cA!=null),toArray$3(toValue(rA.value?AA[1]:AA[0])),toArray$3(unref(rA.value?AA[2]:AA[1])),toValue(rA.value?AA[3]:AA[2])]},([iA,sA,cA,uA])=>{if(tA(),!(iA!=null&&iA.length)||!(sA!=null&&sA.length)||!(cA!=null&&cA.length))return;const lA=isObject$3(uA)?{...uA}:uA;eA.push(...iA.flatMap(gA=>sA.flatMap(QA=>cA.map(dA=>nA(gA,QA,dA,lA)))))},{flush:"post"}),aA=()=>{oA(),tA()};return tryOnScopeDispose$1(tA),aA}function useMounted(){const AA=shallowRef(!1),eA=getCurrentInstance();return eA&&onMounted(()=>{AA.value=!0},eA),AA}function useSupported(AA){const eA=useMounted();return computed(()=>(eA.value,!!AA()))}function createKeyPredicate(AA){return typeof AA=="function"?AA:typeof AA=="string"?eA=>eA.key===AA:Array.isArray(AA)?eA=>AA.includes(eA.key):()=>!0}function onKeyStroke(...AA){let eA,tA,nA={};AA.length===3?(eA=AA[0],tA=AA[1],nA=AA[2]):AA.length===2?typeof AA[1]=="object"?(eA=!0,tA=AA[0],nA=AA[1]):(eA=AA[0],tA=AA[1]):(eA=!0,tA=AA[0]);const{target:rA=defaultWindow,eventName:oA="keydown",passive:aA=!1,dedupe:iA=!1}=nA,sA=createKeyPredicate(eA);return useEventListener(rA,oA,uA=>{uA.repeat&&toValue(iA)||sA(uA)&&tA(uA)},aA)}const ssrWidthSymbol=Symbol("vueuse-ssr-width");function useSSRWidth(){const AA=hasInjectionContext()?injectLocal(ssrWidthSymbol,null):null;return typeof AA=="number"?AA:void 0}function useMediaQuery(AA,eA={}){const{window:tA=defaultWindow,ssrWidth:nA=useSSRWidth()}=eA,rA=useSupported(()=>tA&&"matchMedia"in tA&&typeof tA.matchMedia=="function"),oA=shallowRef(typeof nA=="number"),aA=shallowRef(),iA=shallowRef(!1),sA=cA=>{iA.value=cA.matches};return watchEffect(()=>{if(oA.value){oA.value=!rA.value;const cA=toValue(AA).split(",");iA.value=cA.some(uA=>{const lA=uA.includes("not all"),gA=uA.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),QA=uA.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/);let dA=!!(gA||QA);return gA&&dA&&(dA=nA>=pxValue(gA[1])),QA&&dA&&(dA=nA<=pxValue(QA[1])),lA?!dA:dA});return}rA.value&&(aA.value=tA.matchMedia(toValue(AA)),iA.value=aA.value.matches)}),useEventListener(aA,"change",sA,{passive:!0}),computed(()=>iA.value)}const _global=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},globalKey="__vueuse_ssr_handlers__",handlers=getHandlers();function getHandlers(){return globalKey in _global||(_global[globalKey]=_global[globalKey]||{}),_global[globalKey]}function getSSRHandler(AA,eA){return handlers[AA]||eA}function usePreferredDark(AA){return useMediaQuery("(prefers-color-scheme: dark)",AA)}function guessSerializerType(AA){return AA==null?"any":AA instanceof Set?"set":AA instanceof Map?"map":AA instanceof Date?"date":typeof AA=="boolean"?"boolean":typeof AA=="string"?"string":typeof AA=="object"?"object":Number.isNaN(AA)?"any":"number"}const StorageSerializers={boolean:{read:AA=>AA==="true",write:AA=>String(AA)},object:{read:AA=>JSON.parse(AA),write:AA=>JSON.stringify(AA)},number:{read:AA=>Number.parseFloat(AA),write:AA=>String(AA)},any:{read:AA=>AA,write:AA=>String(AA)},string:{read:AA=>AA,write:AA=>String(AA)},map:{read:AA=>new Map(JSON.parse(AA)),write:AA=>JSON.stringify(Array.from(AA.entries()))},set:{read:AA=>new Set(JSON.parse(AA)),write:AA=>JSON.stringify(Array.from(AA))},date:{read:AA=>new Date(AA),write:AA=>AA.toISOString()}},customStorageEventName="vueuse-storage";function useStorage(AA,eA,tA,nA={}){var rA;const{flush:oA="pre",deep:aA=!0,listenToStorageChanges:iA=!0,writeDefaults:sA=!0,mergeDefaults:cA=!1,shallow:uA,window:lA=defaultWindow,eventFilter:gA,onError:QA=HA=>{console.error(HA)},initOnMounted:dA}=nA,fA=(uA?shallowRef:ref)(typeof eA=="function"?eA():eA),hA=computed(()=>toValue(AA));if(!tA)try{tA=getSSRHandler("getDefaultStorage",()=>{var HA;return(HA=defaultWindow)==null?void 0:HA.localStorage})()}catch(HA){QA(HA)}if(!tA)return fA;const TA=toValue(eA),pA=guessSerializerType(TA),mA=(rA=nA.serializer)!=null?rA:StorageSerializers[pA],{pause:EA,resume:BA}=watchPausable(fA,()=>IA(fA.value),{flush:oA,deep:aA,eventFilter:gA});watch$1(hA,()=>_A(),{flush:oA}),lA&&iA&&tryOnMounted(()=>{tA instanceof Storage?useEventListener(lA,"storage",_A,{passive:!0}):useEventListener(lA,customStorageEventName,DA),dA&&_A()}),dA||_A();function CA(HA,MA){if(lA){const xA={key:hA.value,oldValue:HA,newValue:MA,storageArea:tA};lA.dispatchEvent(tA instanceof Storage?new StorageEvent("storage",xA):new CustomEvent(customStorageEventName,{detail:xA}))}}function IA(HA){try{const MA=tA.getItem(hA.value);if(HA==null)CA(MA,null),tA.removeItem(hA.value);else{const xA=mA.write(HA);MA!==xA&&(tA.setItem(hA.value,xA),CA(MA,xA))}}catch(MA){QA(MA)}}function yA(HA){const MA=HA?HA.newValue:tA.getItem(hA.value);if(MA==null)return sA&&TA!=null&&tA.setItem(hA.value,mA.write(TA)),TA;if(!HA&&cA){const xA=mA.read(MA);return typeof cA=="function"?cA(xA,TA):pA==="object"&&!Array.isArray(xA)?{...TA,...xA}:xA}else return typeof MA!="string"?MA:mA.read(MA)}function _A(HA){if(!(HA&&HA.storageArea!==tA)){if(HA&&HA.key==null){fA.value=TA;return}if(!(HA&&HA.key!==hA.value)){EA();try{(HA==null?void 0:HA.newValue)!==mA.write(fA.value)&&(fA.value=yA(HA))}catch(MA){QA(MA)}finally{HA?nextTick(BA):BA()}}}}function DA(HA){_A(HA.detail)}return fA}const CSS_DISABLE_TRANS="*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}";function useColorMode(AA={}){const{selector:eA="html",attribute:tA="class",initialValue:nA="auto",window:rA=defaultWindow,storage:oA,storageKey:aA="vueuse-color-scheme",listenToStorageChanges:iA=!0,storageRef:sA,emitAuto:cA,disableTransition:uA=!0}=AA,lA={auto:"",light:"light",dark:"dark",...AA.modes||{}},gA=usePreferredDark({window:rA}),QA=computed(()=>gA.value?"dark":"light"),dA=sA||(aA==null?toRef(nA):useStorage(aA,nA,oA,{window:rA,listenToStorageChanges:iA})),fA=computed(()=>dA.value==="auto"?QA.value:dA.value),hA=getSSRHandler("updateHTMLAttrs",(EA,BA,CA)=>{const IA=typeof EA=="string"?rA==null?void 0:rA.document.querySelector(EA):unrefElement$1(EA);if(!IA)return;const yA=new Set,_A=new Set;let DA=null;if(BA==="class"){const MA=CA.split(/\s/g);Object.values(lA).flatMap(xA=>(xA||"").split(/\s/g)).filter(Boolean).forEach(xA=>{MA.includes(xA)?yA.add(xA):_A.add(xA)})}else DA={key:BA,value:CA};if(yA.size===0&&_A.size===0&&DA===null)return;let HA;uA&&(HA=rA.document.createElement("style"),HA.appendChild(document.createTextNode(CSS_DISABLE_TRANS)),rA.document.head.appendChild(HA));for(const MA of yA)IA.classList.add(MA);for(const MA of _A)IA.classList.remove(MA);DA&&IA.setAttribute(DA.key,DA.value),uA&&(rA.getComputedStyle(HA).opacity,document.head.removeChild(HA))});function TA(EA){var BA;hA(eA,tA,(BA=lA[EA])!=null?BA:EA)}function pA(EA){AA.onChanged?AA.onChanged(EA,TA):TA(EA)}watch$1(fA,pA,{flush:"post",immediate:!0}),tryOnMounted(()=>pA(fA.value));const mA=computed({get(){return cA?dA.value:fA.value},set(EA){dA.value=EA}});return Object.assign(mA,{store:dA,system:QA,state:fA})}function useDark(AA={}){const{valueDark:eA="dark",valueLight:tA=""}=AA,nA=useColorMode({...AA,onChanged:(aA,iA)=>{var sA;AA.onChanged?(sA=AA.onChanged)==null||sA.call(AA,aA==="dark",iA,aA):iA(aA)},modes:{dark:eA,light:tA}}),rA=computed(()=>nA.system.value);return computed({get(){return nA.value==="dark"},set(aA){const iA=aA?"dark":"light";rA.value===iA?nA.value="auto":nA.value=iA}})}function resolveElement(AA){return typeof Window<"u"&&AA instanceof Window?AA.document.documentElement:typeof Document<"u"&&AA instanceof Document?AA.documentElement:AA}const ARRIVED_STATE_THRESHOLD_PIXELS=1;function useScroll(AA,eA={}){const{throttle:tA=0,idle:nA=200,onStop:rA=noop,onScroll:oA=noop,offset:aA={left:0,right:0,top:0,bottom:0},eventListenerOptions:iA={capture:!1,passive:!0},behavior:sA="auto",window:cA=defaultWindow,onError:uA=IA=>{console.error(IA)}}=eA,lA=shallowRef(0),gA=shallowRef(0),QA=computed({get(){return lA.value},set(IA){fA(IA,void 0)}}),dA=computed({get(){return gA.value},set(IA){fA(void 0,IA)}});function fA(IA,yA){var _A,DA,HA,MA;if(!cA)return;const xA=toValue(AA);if(!xA)return;(HA=xA instanceof Document?cA.document.body:xA)==null||HA.scrollTo({top:(_A=toValue(yA))!=null?_A:dA.value,left:(DA=toValue(IA))!=null?DA:QA.value,behavior:toValue(sA)});const SA=((MA=xA==null?void 0:xA.document)==null?void 0:MA.documentElement)||(xA==null?void 0:xA.documentElement)||xA;QA!=null&&(lA.value=SA.scrollLeft),dA!=null&&(gA.value=SA.scrollTop)}const hA=shallowRef(!1),TA=reactive({left:!0,right:!1,top:!0,bottom:!1}),pA=reactive({left:!1,right:!1,top:!1,bottom:!1}),mA=IA=>{hA.value&&(hA.value=!1,pA.left=!1,pA.right=!1,pA.top=!1,pA.bottom=!1,rA(IA))},EA=useDebounceFn(mA,tA+nA),BA=IA=>{var yA;if(!cA)return;const _A=((yA=IA==null?void 0:IA.document)==null?void 0:yA.documentElement)||(IA==null?void 0:IA.documentElement)||unrefElement$1(IA),{display:DA,flexDirection:HA,direction:MA}=getComputedStyle(_A),xA=MA==="rtl"?-1:1,SA=_A.scrollLeft;pA.left=SAlA.value;const OA=Math.abs(SA*xA)<=(aA.left||0),FA=Math.abs(SA*xA)+_A.clientWidth>=_A.scrollWidth-(aA.right||0)-ARRIVED_STATE_THRESHOLD_PIXELS;DA==="flex"&&HA==="row-reverse"?(TA.left=FA,TA.right=OA):(TA.left=OA,TA.right=FA),lA.value=SA;let RA=_A.scrollTop;IA===cA.document&&!RA&&(RA=cA.document.body.scrollTop),pA.top=RAgA.value;const $A=Math.abs(RA)<=(aA.top||0),YA=Math.abs(RA)+_A.clientHeight>=_A.scrollHeight-(aA.bottom||0)-ARRIVED_STATE_THRESHOLD_PIXELS;DA==="flex"&&HA==="column-reverse"?(TA.top=YA,TA.bottom=$A):(TA.top=$A,TA.bottom=YA),gA.value=RA},CA=IA=>{var yA;if(!cA)return;const _A=(yA=IA.target.documentElement)!=null?yA:IA.target;BA(_A),hA.value=!0,EA(IA),oA(IA)};return useEventListener(AA,"scroll",tA?useThrottleFn(CA,tA,!0,!1):CA,iA),tryOnMounted(()=>{try{const IA=toValue(AA);if(!IA)return;BA(IA)}catch(IA){uA(IA)}}),useEventListener(AA,"scrollend",mA,iA),{x:QA,y:dA,isScrolling:hA,arrivedState:TA,directions:pA,measure(){const IA=toValue(AA);cA&&IA&&BA(IA)}}}function useLocalStorage(AA,eA,tA={}){const{window:nA=defaultWindow}=tA;return useStorage(AA,eA,nA==null?void 0:nA.localStorage,tA)}function checkOverflowScroll(AA){const eA=window.getComputedStyle(AA);if(eA.overflowX==="scroll"||eA.overflowY==="scroll"||eA.overflowX==="auto"&&AA.clientWidth1?!0:(eA.preventDefault&&eA.preventDefault(),!1)}const elInitialOverflow=new WeakMap;function useScrollLock(AA,eA=!1){const tA=shallowRef(eA);let nA=null,rA="";watch$1(toRef(AA),iA=>{const sA=resolveElement(toValue(iA));if(sA){const cA=sA;if(elInitialOverflow.get(cA)||elInitialOverflow.set(cA,cA.style.overflow),cA.style.overflow!=="hidden"&&(rA=cA.style.overflow),cA.style.overflow==="hidden")return tA.value=!0;if(tA.value)return cA.style.overflow="hidden"}},{immediate:!0});const oA=()=>{const iA=resolveElement(toValue(AA));!iA||tA.value||(isIOS&&(nA=useEventListener(iA,"touchmove",sA=>{preventDefault(sA)},{passive:!1})),iA.style.overflow="hidden",tA.value=!0)},aA=()=>{const iA=resolveElement(toValue(AA));!iA||!tA.value||(isIOS&&(nA==null||nA()),iA.style.overflow=rA,elInitialOverflow.delete(iA),tA.value=!1)};return tryOnScopeDispose$1(aA),computed({get(){return tA.value},set(iA){iA?oA():aA()}})}function useSessionStorage(AA,eA,tA={}){const{window:nA=defaultWindow}=tA;return useStorage(AA,eA,nA==null?void 0:nA.sessionStorage,tA)}function useWindowScroll(AA={}){const{window:eA=defaultWindow,...tA}=AA;return useScroll(eA,tA)}function useWindowSize(AA={}){const{window:eA=defaultWindow,initialWidth:tA=Number.POSITIVE_INFINITY,initialHeight:nA=Number.POSITIVE_INFINITY,listenOrientation:rA=!0,includeScrollbar:oA=!0,type:aA="inner"}=AA,iA=shallowRef(tA),sA=shallowRef(nA),cA=()=>{if(eA)if(aA==="outer")iA.value=eA.outerWidth,sA.value=eA.outerHeight;else if(aA==="visual"&&eA.visualViewport){const{width:lA,height:gA,scale:QA}=eA.visualViewport;iA.value=Math.round(lA*QA),sA.value=Math.round(gA*QA)}else oA?(iA.value=eA.innerWidth,sA.value=eA.innerHeight):(iA.value=eA.document.documentElement.clientWidth,sA.value=eA.document.documentElement.clientHeight)};cA(),tryOnMounted(cA);const uA={passive:!0};if(useEventListener("resize",cA,uA),eA&&aA==="visual"&&eA.visualViewport&&useEventListener(eA.visualViewport,"resize",cA,uA),rA){const lA=useMediaQuery("(orientation: portrait)");watch$1(lA,()=>cA())}return{width:iA,height:sA}}const __vite_import_meta_env__={};var define_process_env_default={};const EXTERNAL_URL_RE=/^(?:[a-z]+:|\/\/)/i,APPEARANCE_KEY="vitepress-theme-appearance",HASH_RE=/#.*$/,HASH_OR_QUERY_RE=/[?#].*$/,INDEX_OR_EXT_RE=/(?:(^|\/)index)?\.(?:md|html)$/,inBrowser=typeof document<"u";function isActive(AA,eA,tA=!1){if(eA===void 0)return!1;if(AA=normalize$2(`/${AA}`),tA)return new RegExp(eA).test(AA);if(normalize$2(eA)!==AA)return!1;const nA=eA.match(HASH_RE);return nA?(inBrowser?location.hash:"")===nA[0]:!0}function normalize$2(AA){return decodeURI(AA).replace(HASH_OR_QUERY_RE,"").replace(INDEX_OR_EXT_RE,"$1")}function isExternal(AA){return EXTERNAL_URL_RE.test(AA)}function getLocaleForPath(AA,eA){return Object.keys((AA==null?void 0:AA.locales)||{}).find(tA=>tA!=="root"&&!isExternal(tA)&&isActive(eA,`/${tA}/`,!0))||"root"}function resolveSiteDataByRoute(AA,eA){var nA,rA,oA,aA,iA,sA,cA;const tA=getLocaleForPath(AA,eA);return Object.assign({},AA,{localeIndex:tA,lang:((nA=AA.locales[tA])==null?void 0:nA.lang)??AA.lang,dir:((rA=AA.locales[tA])==null?void 0:rA.dir)??AA.dir,title:((oA=AA.locales[tA])==null?void 0:oA.title)??AA.title,titleTemplate:((aA=AA.locales[tA])==null?void 0:aA.titleTemplate)??AA.titleTemplate,description:((iA=AA.locales[tA])==null?void 0:iA.description)??AA.description,head:mergeHead(AA.head,((sA=AA.locales[tA])==null?void 0:sA.head)??[]),themeConfig:{...AA.themeConfig,...(cA=AA.locales[tA])==null?void 0:cA.themeConfig}})}function createTitle(AA,eA){const tA=eA.title||AA.title,nA=eA.titleTemplate??AA.titleTemplate;if(typeof nA=="string"&&nA.includes(":title"))return nA.replace(/:title/g,tA);const rA=createTitleTemplate(AA.title,nA);return tA===rA.slice(3)?tA:`${tA}${rA}`}function createTitleTemplate(AA,eA){return eA===!1?"":eA===!0||eA===void 0?` | ${AA}`:AA===eA?"":` | ${eA}`}function hasTag(AA,eA){const[tA,nA]=eA;if(tA!=="meta")return!1;const rA=Object.entries(nA)[0];return rA==null?!1:AA.some(([oA,aA])=>oA===tA&&aA[rA[0]]===rA[1])}function mergeHead(AA,eA){return[...AA.filter(tA=>!hasTag(eA,tA)),...eA]}const INVALID_CHAR_REGEX=/[\u0000-\u001F"#$&*+,:;<=>?[\]^`{|}\u007F]/g,DRIVE_LETTER_REGEX=/^[a-z]:/i;function sanitizeFileName(AA){const eA=DRIVE_LETTER_REGEX.exec(AA),tA=eA?eA[0]:"";return tA+AA.slice(tA.length).replace(INVALID_CHAR_REGEX,"_").replace(/(^|\/)_+(?=[^/]*$)/,"$1")}const KNOWN_EXTENSIONS=new Set;function treatAsHtml(AA){if(KNOWN_EXTENSIONS.size===0){const tA=typeof process=="object"&&(define_process_env_default==null?void 0:define_process_env_default.VITE_EXTRA_EXTENSIONS)||(__vite_import_meta_env__==null?void 0:__vite_import_meta_env__.VITE_EXTRA_EXTENSIONS)||"";("3g2,3gp,aac,ai,apng,au,avif,bin,bmp,cer,class,conf,crl,css,csv,dll,doc,eps,epub,exe,gif,gz,ics,ief,jar,jpe,jpeg,jpg,js,json,jsonld,m4a,man,mid,midi,mjs,mov,mp2,mp3,mp4,mpe,mpeg,mpg,mpp,oga,ogg,ogv,ogx,opus,otf,p10,p7c,p7m,p7s,pdf,png,ps,qt,roff,rtf,rtx,ser,svg,t,tif,tiff,tr,ts,tsv,ttf,txt,vtt,wav,weba,webm,webp,woff,woff2,xhtml,xml,yaml,yml,zip"+(tA&&typeof tA=="string"?","+tA:"")).split(",").forEach(nA=>KNOWN_EXTENSIONS.add(nA))}const eA=AA.split(".").pop();return eA==null||!KNOWN_EXTENSIONS.has(eA.toLowerCase())}function escapeRegExp(AA){return AA.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}const dataSymbol=Symbol(),siteDataRef=shallowRef(siteData);function initData(AA){const eA=computed(()=>resolveSiteDataByRoute(siteDataRef.value,AA.data.relativePath)),tA=eA.value.appearance,nA=tA==="force-dark"?ref(!0):tA==="force-auto"?usePreferredDark():tA?useDark({storageKey:APPEARANCE_KEY,initialValue:()=>tA==="dark"?"dark":"auto",...typeof tA=="object"?tA:{}}):ref(!1),rA=ref(inBrowser?location.hash:"");return inBrowser&&window.addEventListener("hashchange",()=>{rA.value=location.hash}),watch$1(()=>AA.data,()=>{rA.value=inBrowser?location.hash:""}),{site:eA,theme:computed(()=>eA.value.themeConfig),page:computed(()=>AA.data),frontmatter:computed(()=>AA.data.frontmatter),params:computed(()=>AA.data.params),lang:computed(()=>eA.value.lang),dir:computed(()=>AA.data.frontmatter.dir||eA.value.dir),localeIndex:computed(()=>eA.value.localeIndex||"root"),title:computed(()=>createTitle(eA.value,AA.data)),description:computed(()=>AA.data.description||eA.value.description),isDark:nA,hash:computed(()=>rA.value)}}function useData$1(){const AA=inject(dataSymbol);if(!AA)throw new Error("vitepress data not properly injected in app");return AA}var define_VP_HASH_MAP_default={};function joinPath(AA,eA){return`${AA}${eA}`.replace(/\/+/g,"/")}function withBase(AA){return EXTERNAL_URL_RE.test(AA)||!AA.startsWith("/")?AA:joinPath(siteDataRef.value.base,AA)}function pathToFile(AA){let eA=AA.replace(/\.html$/,"");if(eA=decodeURIComponent(eA),eA=eA.replace(/\/$/,"/index"),inBrowser){const tA="/";eA=sanitizeFileName(eA.slice(tA.length).replace(/\//g,"_")||"index")+".md";let nA=define_VP_HASH_MAP_default[eA.toLowerCase()];if(nA||(eA=eA.endsWith("_index.md")?eA.slice(0,-9)+".md":eA.slice(0,-3)+"_index.md",nA=define_VP_HASH_MAP_default[eA.toLowerCase()]),!nA)return null;eA=`${tA}/assets/${eA}.${nA}.js`}else eA=`./${sanitizeFileName(eA.slice(1).replace(/\//g,"_"))}.md.js`;return eA}let contentUpdatedCallbacks=[];function onContentUpdated(AA){contentUpdatedCallbacks.push(AA),onUnmounted(()=>{contentUpdatedCallbacks=contentUpdatedCallbacks.filter(eA=>eA!==AA)})}function getScrollOffset(){let AA=siteDataRef.value.scrollOffset,eA=0,tA=24;if(typeof AA=="object"&&"padding"in AA&&(tA=AA.padding,AA=AA.selector),typeof AA=="number")eA=AA;else if(typeof AA=="string")eA=tryOffsetSelector(AA,tA);else if(Array.isArray(AA))for(const nA of AA){const rA=tryOffsetSelector(nA,tA);if(rA){eA=rA;break}}return eA}function tryOffsetSelector(AA,eA){const tA=document.querySelector(AA);if(!tA)return 0;const nA=tA.getBoundingClientRect().bottom;return nA<0?0:nA+eA}const RouterSymbol=Symbol();function useRouter(){const AA=inject(RouterSymbol);if(!AA)throw new Error("useRouter() is called without provider.");return AA}function useRoute(){return useRouter().route}const runCbs=()=>contentUpdatedCallbacks.forEach(AA=>AA()),Content=defineComponent({name:"VitePressContent",props:{as:{type:[Object,String],default:"div"}},setup(AA){const eA=useRoute(),{frontmatter:tA,site:nA}=useData$1();return watch$1(tA,runCbs,{deep:!0,flush:"post"}),()=>h$1(AA.as,nA.value.contentProps??{style:{position:"relative"}},[eA.component?h$1(eA.component,{onVnodeMounted:runCbs,onVnodeUpdated:runCbs,onVnodeUnmounted:runCbs}):"404 Page Not Found"])}}),ClientOnly=defineComponent({setup(AA,{slots:eA}){const tA=ref(!1);return onMounted(()=>{tA.value=!0}),()=>tA.value&&eA.default?eA.default():null}}),scriptRel="modulepreload",assetsURL=function(AA){return"/"+AA},seen$2={},__vitePreload=function(eA,tA,nA){let rA=Promise.resolve();if(tA&&tA.length>0){document.getElementsByTagName("link");const aA=document.querySelector("meta[property=csp-nonce]"),iA=(aA==null?void 0:aA.nonce)||(aA==null?void 0:aA.getAttribute("nonce"));rA=Promise.allSettled(tA.map(sA=>{if(sA=assetsURL(sA),sA in seen$2)return;seen$2[sA]=!0;const cA=sA.endsWith(".css"),uA=cA?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${sA}"]${uA}`))return;const lA=document.createElement("link");if(lA.rel=cA?"stylesheet":scriptRel,cA||(lA.as="script"),lA.crossOrigin="",lA.href=sA,iA&&lA.setAttribute("nonce",iA),document.head.appendChild(lA),cA)return new Promise((gA,QA)=>{lA.addEventListener("load",gA),lA.addEventListener("error",()=>QA(new Error(`Unable to preload CSS for ${sA}`)))})}))}function oA(aA){const iA=new Event("vite:preloadError",{cancelable:!0});if(iA.payload=aA,window.dispatchEvent(iA),!iA.defaultPrevented)throw aA}return rA.then(aA=>{for(const iA of aA||[])iA.status==="rejected"&&oA(iA.reason);return eA().catch(oA)})},decodeCache={};function getDecodeCache(AA){let eA=decodeCache[AA];if(eA)return eA;eA=decodeCache[AA]=[];for(let tA=0;tA<128;tA++){const nA=String.fromCharCode(tA);eA.push(nA)}for(let tA=0;tA=55296&&uA<=57343?rA+="���":rA+=String.fromCharCode(uA),oA+=6;continue}}if((iA&248)===240&&oA+91114111?rA+="����":(lA-=65536,rA+=String.fromCharCode(55296+(lA>>10),56320+(lA&1023))),oA+=9;continue}}rA+="�"}return rA})}decode$2.defaultChars=";/?:@&=+$,#";decode$2.componentChars="";const encodeCache={};function getEncodeCache(AA){let eA=encodeCache[AA];if(eA)return eA;eA=encodeCache[AA]=[];for(let tA=0;tA<128;tA++){const nA=String.fromCharCode(tA);/^[0-9a-z]$/i.test(nA)?eA.push(nA):eA.push("%"+("0"+tA.toString(16).toUpperCase()).slice(-2))}for(let tA=0;tA"u"&&(tA=!0);const nA=getEncodeCache(eA);let rA="";for(let oA=0,aA=AA.length;oA=55296&&iA<=57343){if(iA>=55296&&iA<=56319&&oA+1=56320&&sA<=57343){rA+=encodeURIComponent(AA[oA]+AA[oA+1]),oA++;continue}}rA+="%EF%BF%BD";continue}rA+=encodeURIComponent(AA[oA])}return rA}encode$2.defaultChars=";/?:@&=+$,-_.!~*'()#";encode$2.componentChars="-_.!~*'()";function format(AA){let eA="";return eA+=AA.protocol||"",eA+=AA.slashes?"//":"",eA+=AA.auth?AA.auth+"@":"",AA.hostname&&AA.hostname.indexOf(":")!==-1?eA+="["+AA.hostname+"]":eA+=AA.hostname||"",eA+=AA.port?":"+AA.port:"",eA+=AA.pathname||"",eA+=AA.search||"",eA+=AA.hash||"",eA}function Url(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}const protocolPattern=/^([a-z0-9.+-]+:)/i,portPattern=/:[0-9]*$/,simplePathPattern=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,delims=["<",">",'"',"`"," ","\r",` +`," "],unwise=["{","}","|","\\","^","`"].concat(delims),autoEscape=["'"].concat(unwise),nonHostChars=["%","/","?",";","#"].concat(autoEscape),hostEndingChars=["/","?","#"],hostnameMaxLen=255,hostnamePartPattern=/^[+a-z0-9A-Z_-]{0,63}$/,hostnamePartStart=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,hostlessProtocol={javascript:!0,"javascript:":!0},slashedProtocol={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};function urlParse(AA,eA){if(AA&&AA instanceof Url)return AA;const tA=new Url;return tA.parse(AA,eA),tA}Url.prototype.parse=function(AA,eA){let tA,nA,rA,oA=AA;if(oA=oA.trim(),!eA&&AA.split("#").length===1){const cA=simplePathPattern.exec(oA);if(cA)return this.pathname=cA[1],cA[2]&&(this.search=cA[2]),this}let aA=protocolPattern.exec(oA);if(aA&&(aA=aA[0],tA=aA.toLowerCase(),this.protocol=aA,oA=oA.substr(aA.length)),(eA||aA||oA.match(/^\/\/[^@\/]+@[^@\/]+/))&&(rA=oA.substr(0,2)==="//",rA&&!(aA&&hostlessProtocol[aA])&&(oA=oA.substr(2),this.slashes=!0)),!hostlessProtocol[aA]&&(rA||aA&&!slashedProtocol[aA])){let cA=-1;for(let dA=0;dA127?pA+="x":pA+=TA[mA];if(!pA.match(hostnamePartPattern)){const mA=dA.slice(0,fA),EA=dA.slice(fA+1),BA=TA.match(hostnamePartStart);BA&&(mA.push(BA[1]),EA.unshift(BA[2])),EA.length&&(oA=EA.join(".")+oA),this.hostname=mA.join(".");break}}}}this.hostname.length>hostnameMaxLen&&(this.hostname=""),QA&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}const iA=oA.indexOf("#");iA!==-1&&(this.hash=oA.substr(iA),oA=oA.slice(0,iA));const sA=oA.indexOf("?");return sA!==-1&&(this.search=oA.substr(sA),oA=oA.slice(0,sA)),oA&&(this.pathname=oA),slashedProtocol[tA]&&this.hostname&&!this.pathname&&(this.pathname=""),this};Url.prototype.parseHost=function(AA){let eA=portPattern.exec(AA);eA&&(eA=eA[0],eA!==":"&&(this.port=eA.substr(1)),AA=AA.substr(0,AA.length-eA.length)),AA&&(this.hostname=AA)};const mdurl=Object.freeze(Object.defineProperty({__proto__:null,decode:decode$2,encode:encode$2,format,parse:urlParse},Symbol.toStringTag,{value:"Module"})),Any=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Cc=/[\0-\x1F\x7F-\x9F]/,regex$1=/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u0890\u0891\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD80D[\uDC30-\uDC3F]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/,P$1=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1B7D\u1B7E\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDEAD\uDF55-\uDF59\uDF86-\uDF89]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDEB9\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2\uDF00-\uDF09]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDF43-\uDF4F\uDFFF]|\uD809[\uDC70-\uDC74]|\uD80B[\uDFF1\uDFF2]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/,regex=/[\$\+<->\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u0888\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20C0\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFF\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u31EF\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC2\uFD40-\uFD4F\uFDCF\uFDFC-\uFDFF\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD833[\uDF50-\uDFC3]|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDEA\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEDC-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF76\uDF7B-\uDFD9\uDFE0-\uDFEB\uDFF0]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDE53\uDE60-\uDE6D\uDE70-\uDE7C\uDE80-\uDE88\uDE90-\uDEBD\uDEBF-\uDEC5\uDECE-\uDEDB\uDEE0-\uDEE8\uDEF0-\uDEF8\uDF00-\uDF92\uDF94-\uDFCA]/,Z$1=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/,ucmicro=Object.freeze(Object.defineProperty({__proto__:null,Any,Cc,Cf:regex$1,P:P$1,S:regex,Z:Z$1},Symbol.toStringTag,{value:"Module"})),htmlDecodeTree=new Uint16Array('ᵁ<Õıʊҝջאٵ۞ޢߖࠏ੊ઑඡ๭༉༦჊ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ὾⁠↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms„‹•˜¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲ΂ϏϢϸontourIntegraìȹoɴ͹\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՗՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲ׌y;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱cò׋؀JTabcdfgorstר׬ׯ׺؀ؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘ë૙eryThiî૙tedĀGL૸ଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻Ó䃓Āiy෎ීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬื฼de耻Õ䃕es;樷ml耻Ö䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»࿝pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗Āeiቻ኉Dzኀ\0ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀  Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0᏿ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0጖y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtè૙a;䎖r;愨pf;愤cr;쀀𝒵௡ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;e዁ᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀𝔟g΀costuvwឍឝឳេ៕៛៞ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t»᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭍᭒\0᯽\0ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇᫔᫺\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ᫙\0\0᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁îᅠeĀmx᫱᫶ent»᫩eóɍǧ᫾\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍rò΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴoôᲉĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»Ṻƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙ῜ῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧‪‬\0‮耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0↎proø₞r;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼rò৆òΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonó྘quigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roø඄urĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨í஘istĀ;s஠டr;쀀𝔫ȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lanô௢ií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs఻⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lleì୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉uå൅;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭å೸åഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñ೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥ⵲ⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀𝔬ͯ⵹\0\0⵼\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨrò᪀Āir⶝ⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ⹞\0⹽\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ⹧⹲຅脀¶;l⹭⹮䂶leìЃɩ⹸\0\0⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴ï໻rel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei⿾々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ì࿲âヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowó࿪arpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓rò࿪aòՑ;怏oustĀ;a㈞㈟掱che»㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼਴t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì⹯耻­䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫ਩war;椪lig耻ß䃟௡㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rë๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproø዁im»ኬsðኞĀas㚺㚮ð዁rn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xô᝷headĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roð໻tré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜ៟tré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split("").map(AA=>AA.charCodeAt(0))),xmlDecodeTree=new Uint16Array("Ȁaglq \x1Bɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢".split("").map(AA=>AA.charCodeAt(0)));var _a$b;const decodeMap=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]),fromCodePoint$1=(_a$b=String.fromCodePoint)!==null&&_a$b!==void 0?_a$b:function(AA){let eA="";return AA>65535&&(AA-=65536,eA+=String.fromCharCode(AA>>>10&1023|55296),AA=56320|AA&1023),eA+=String.fromCharCode(AA),eA};function replaceCodePoint(AA){var eA;return AA>=55296&&AA<=57343||AA>1114111?65533:(eA=decodeMap.get(AA))!==null&&eA!==void 0?eA:AA}var CharCodes;(function(AA){AA[AA.NUM=35]="NUM",AA[AA.SEMI=59]="SEMI",AA[AA.EQUALS=61]="EQUALS",AA[AA.ZERO=48]="ZERO",AA[AA.NINE=57]="NINE",AA[AA.LOWER_A=97]="LOWER_A",AA[AA.LOWER_F=102]="LOWER_F",AA[AA.LOWER_X=120]="LOWER_X",AA[AA.LOWER_Z=122]="LOWER_Z",AA[AA.UPPER_A=65]="UPPER_A",AA[AA.UPPER_F=70]="UPPER_F",AA[AA.UPPER_Z=90]="UPPER_Z"})(CharCodes||(CharCodes={}));const TO_LOWER_BIT=32;var BinTrieFlags;(function(AA){AA[AA.VALUE_LENGTH=49152]="VALUE_LENGTH",AA[AA.BRANCH_LENGTH=16256]="BRANCH_LENGTH",AA[AA.JUMP_TABLE=127]="JUMP_TABLE"})(BinTrieFlags||(BinTrieFlags={}));function isNumber(AA){return AA>=CharCodes.ZERO&&AA<=CharCodes.NINE}function isHexadecimalCharacter(AA){return AA>=CharCodes.UPPER_A&&AA<=CharCodes.UPPER_F||AA>=CharCodes.LOWER_A&&AA<=CharCodes.LOWER_F}function isAsciiAlphaNumeric(AA){return AA>=CharCodes.UPPER_A&&AA<=CharCodes.UPPER_Z||AA>=CharCodes.LOWER_A&&AA<=CharCodes.LOWER_Z||isNumber(AA)}function isEntityInAttributeInvalidEnd(AA){return AA===CharCodes.EQUALS||isAsciiAlphaNumeric(AA)}var EntityDecoderState;(function(AA){AA[AA.EntityStart=0]="EntityStart",AA[AA.NumericStart=1]="NumericStart",AA[AA.NumericDecimal=2]="NumericDecimal",AA[AA.NumericHex=3]="NumericHex",AA[AA.NamedEntity=4]="NamedEntity"})(EntityDecoderState||(EntityDecoderState={}));var DecodingMode;(function(AA){AA[AA.Legacy=0]="Legacy",AA[AA.Strict=1]="Strict",AA[AA.Attribute=2]="Attribute"})(DecodingMode||(DecodingMode={}));class EntityDecoder{constructor(eA,tA,nA){this.decodeTree=eA,this.emitCodePoint=tA,this.errors=nA,this.state=EntityDecoderState.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=DecodingMode.Strict}startEntity(eA){this.decodeMode=eA,this.state=EntityDecoderState.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1}write(eA,tA){switch(this.state){case EntityDecoderState.EntityStart:return eA.charCodeAt(tA)===CharCodes.NUM?(this.state=EntityDecoderState.NumericStart,this.consumed+=1,this.stateNumericStart(eA,tA+1)):(this.state=EntityDecoderState.NamedEntity,this.stateNamedEntity(eA,tA));case EntityDecoderState.NumericStart:return this.stateNumericStart(eA,tA);case EntityDecoderState.NumericDecimal:return this.stateNumericDecimal(eA,tA);case EntityDecoderState.NumericHex:return this.stateNumericHex(eA,tA);case EntityDecoderState.NamedEntity:return this.stateNamedEntity(eA,tA)}}stateNumericStart(eA,tA){return tA>=eA.length?-1:(eA.charCodeAt(tA)|TO_LOWER_BIT)===CharCodes.LOWER_X?(this.state=EntityDecoderState.NumericHex,this.consumed+=1,this.stateNumericHex(eA,tA+1)):(this.state=EntityDecoderState.NumericDecimal,this.stateNumericDecimal(eA,tA))}addToNumericResult(eA,tA,nA,rA){if(tA!==nA){const oA=nA-tA;this.result=this.result*Math.pow(rA,oA)+parseInt(eA.substr(tA,oA),rA),this.consumed+=oA}}stateNumericHex(eA,tA){const nA=tA;for(;tA>14;for(;tA>14,oA!==0){if(aA===CharCodes.SEMI)return this.emitNamedEntityData(this.treeIndex,oA,this.consumed+this.excess);this.decodeMode!==DecodingMode.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1}emitNotTerminatedNamedEntity(){var eA;const{result:tA,decodeTree:nA}=this,rA=(nA[tA]&BinTrieFlags.VALUE_LENGTH)>>14;return this.emitNamedEntityData(tA,rA,this.consumed),(eA=this.errors)===null||eA===void 0||eA.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(eA,tA,nA){const{decodeTree:rA}=this;return this.emitCodePoint(tA===1?rA[eA]&~BinTrieFlags.VALUE_LENGTH:rA[eA+1],nA),tA===3&&this.emitCodePoint(rA[eA+2],nA),nA}end(){var eA;switch(this.state){case EntityDecoderState.NamedEntity:return this.result!==0&&(this.decodeMode!==DecodingMode.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case EntityDecoderState.NumericDecimal:return this.emitNumericEntity(0,2);case EntityDecoderState.NumericHex:return this.emitNumericEntity(0,3);case EntityDecoderState.NumericStart:return(eA=this.errors)===null||eA===void 0||eA.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case EntityDecoderState.EntityStart:return 0}}}function getDecoder(AA){let eA="";const tA=new EntityDecoder(AA,nA=>eA+=fromCodePoint$1(nA));return function(rA,oA){let aA=0,iA=0;for(;(iA=rA.indexOf("&",iA))>=0;){eA+=rA.slice(aA,iA),tA.startEntity(oA);const cA=tA.write(rA,iA+1);if(cA<0){aA=iA+tA.end();break}aA=iA+cA,iA=cA===0?aA+1:aA}const sA=eA+rA.slice(aA);return eA="",sA}}function determineBranch(AA,eA,tA,nA){const rA=(eA&BinTrieFlags.BRANCH_LENGTH)>>7,oA=eA&BinTrieFlags.JUMP_TABLE;if(rA===0)return oA!==0&&nA===oA?tA:-1;if(oA){const sA=nA-oA;return sA<0||sA>=rA?-1:AA[tA+sA]-1}let aA=tA,iA=aA+rA-1;for(;aA<=iA;){const sA=aA+iA>>>1,cA=AA[sA];if(cAnA)iA=sA-1;else return AA[sA+rA]}return-1}const htmlDecoder=getDecoder(htmlDecodeTree);getDecoder(xmlDecodeTree);function decodeHTML(AA,eA=DecodingMode.Legacy){return htmlDecoder(AA,eA)}function _class$2(AA){return Object.prototype.toString.call(AA)}function isString$1(AA){return _class$2(AA)==="[object String]"}const _hasOwnProperty$4=Object.prototype.hasOwnProperty;function has(AA,eA){return _hasOwnProperty$4.call(AA,eA)}function assign$2(AA){return Array.prototype.slice.call(arguments,1).forEach(function(tA){if(tA){if(typeof tA!="object")throw new TypeError(tA+"must be object");Object.keys(tA).forEach(function(nA){AA[nA]=tA[nA]})}}),AA}function arrayReplaceAt(AA,eA,tA){return[].concat(AA.slice(0,eA),tA,AA.slice(eA+1))}function isValidEntityCode(AA){return!(AA>=55296&&AA<=57343||AA>=64976&&AA<=65007||(AA&65535)===65535||(AA&65535)===65534||AA>=0&&AA<=8||AA===11||AA>=14&&AA<=31||AA>=127&&AA<=159||AA>1114111)}function fromCodePoint(AA){if(AA>65535){AA-=65536;const eA=55296+(AA>>10),tA=56320+(AA&1023);return String.fromCharCode(eA,tA)}return String.fromCharCode(AA)}const UNESCAPE_MD_RE=/\\([!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~])/g,ENTITY_RE=/&([a-z#][a-z0-9]{1,31});/gi,UNESCAPE_ALL_RE=new RegExp(UNESCAPE_MD_RE.source+"|"+ENTITY_RE.source,"gi"),DIGITAL_ENTITY_TEST_RE=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))$/i;function replaceEntityPattern(AA,eA){if(eA.charCodeAt(0)===35&&DIGITAL_ENTITY_TEST_RE.test(eA)){const nA=eA[1].toLowerCase()==="x"?parseInt(eA.slice(2),16):parseInt(eA.slice(1),10);return isValidEntityCode(nA)?fromCodePoint(nA):AA}const tA=decodeHTML(AA);return tA!==AA?tA:AA}function unescapeMd(AA){return AA.indexOf("\\")<0?AA:AA.replace(UNESCAPE_MD_RE,"$1")}function unescapeAll(AA){return AA.indexOf("\\")<0&&AA.indexOf("&")<0?AA:AA.replace(UNESCAPE_ALL_RE,function(eA,tA,nA){return tA||replaceEntityPattern(eA,nA)})}const HTML_ESCAPE_TEST_RE=/[&<>"]/,HTML_ESCAPE_REPLACE_RE=/[&<>"]/g,HTML_REPLACEMENTS={"&":"&","<":"<",">":">",'"':"""};function replaceUnsafeChar(AA){return HTML_REPLACEMENTS[AA]}function escapeHtml(AA){return HTML_ESCAPE_TEST_RE.test(AA)?AA.replace(HTML_ESCAPE_REPLACE_RE,replaceUnsafeChar):AA}const REGEXP_ESCAPE_RE=/[.?*+^$[\]\\(){}|-]/g;function escapeRE$1(AA){return AA.replace(REGEXP_ESCAPE_RE,"\\$&")}function isSpace(AA){switch(AA){case 9:case 32:return!0}return!1}function isWhiteSpace(AA){if(AA>=8192&&AA<=8202)return!0;switch(AA){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1}function isPunctChar(AA){return P$1.test(AA)||regex.test(AA)}function isMdAsciiPunct(AA){switch(AA){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}}function normalizeReference(AA){return AA=AA.trim().replace(/\s+/g," "),"ẞ".toLowerCase()==="Ṿ"&&(AA=AA.replace(/ẞ/g,"ß")),AA.toLowerCase().toUpperCase()}const lib$a={mdurl,ucmicro},utils$7=Object.freeze(Object.defineProperty({__proto__:null,arrayReplaceAt,assign:assign$2,escapeHtml,escapeRE:escapeRE$1,fromCodePoint,has,isMdAsciiPunct,isPunctChar,isSpace,isString:isString$1,isValidEntityCode,isWhiteSpace,lib:lib$a,normalizeReference,unescapeAll,unescapeMd},Symbol.toStringTag,{value:"Module"}));function parseLinkLabel(AA,eA,tA){let nA,rA,oA,aA;const iA=AA.posMax,sA=AA.pos;for(AA.pos=eA+1,nA=1;AA.pos32))return oA;if(nA===41){if(aA===0)break;aA--}rA++}return eA===rA||aA!==0||(oA.str=unescapeAll(AA.slice(eA,rA)),oA.pos=rA,oA.ok=!0),oA}function parseLinkTitle(AA,eA,tA,nA){let rA,oA=eA;const aA={ok:!1,can_continue:!1,pos:0,str:"",marker:0};if(nA)aA.str=nA.str,aA.marker=nA.marker;else{if(oA>=tA)return aA;let iA=AA.charCodeAt(oA);if(iA!==34&&iA!==39&&iA!==40)return aA;eA++,oA++,iA===40&&(iA=41),aA.marker=iA}for(;oA"+escapeHtml(oA.content)+""};default_rules.code_block=function(AA,eA,tA,nA,rA){const oA=AA[eA];return""+escapeHtml(AA[eA].content)+` +`};default_rules.fence=function(AA,eA,tA,nA,rA){const oA=AA[eA],aA=oA.info?unescapeAll(oA.info).trim():"";let iA="",sA="";if(aA){const uA=aA.split(/(\s+)/g);iA=uA[0],sA=uA.slice(2).join("")}let cA;if(tA.highlight?cA=tA.highlight(oA.content,iA,sA)||escapeHtml(oA.content):cA=escapeHtml(oA.content),cA.indexOf("${cA} +`}return`
${cA}
+`};default_rules.image=function(AA,eA,tA,nA,rA){const oA=AA[eA];return oA.attrs[oA.attrIndex("alt")][1]=rA.renderInlineAsText(oA.children,tA,nA),rA.renderToken(AA,eA,tA)};default_rules.hardbreak=function(AA,eA,tA){return tA.xhtmlOut?`
+`:`
+`};default_rules.softbreak=function(AA,eA,tA){return tA.breaks?tA.xhtmlOut?`
+`:`
+`:` +`};default_rules.text=function(AA,eA){return escapeHtml(AA[eA].content)};default_rules.html_block=function(AA,eA){return AA[eA].content};default_rules.html_inline=function(AA,eA){return AA[eA].content};function Renderer(){this.rules=assign$2({},default_rules)}Renderer.prototype.renderAttrs=function(eA){let tA,nA,rA;if(!eA.attrs)return"";for(rA="",tA=0,nA=eA.attrs.length;tA +`:">",oA};Renderer.prototype.renderInline=function(AA,eA,tA){let nA="";const rA=this.rules;for(let oA=0,aA=AA.length;oA=0&&(nA=this.attrs[tA][1]),nA};Token.prototype.attrJoin=function(eA,tA){const nA=this.attrIndex(eA);nA<0?this.attrPush([eA,tA]):this.attrs[nA][1]=this.attrs[nA][1]+" "+tA};function StateCore(AA,eA,tA){this.src=AA,this.env=tA,this.tokens=[],this.inlineMode=!1,this.md=eA}StateCore.prototype.Token=Token;const NEWLINES_RE=/\r\n?|\n/g,NULL_RE=/\0/g;function normalize$1(AA){let eA;eA=AA.src.replace(NEWLINES_RE,` +`),eA=eA.replace(NULL_RE,"�"),AA.src=eA}function block$2(AA){let eA;AA.inlineMode?(eA=new AA.Token("inline","",0),eA.content=AA.src,eA.map=[0,1],eA.children=[],AA.tokens.push(eA)):AA.md.block.parse(AA.src,AA.md,AA.env,AA.tokens)}function inline$1(AA){const eA=AA.tokens;for(let tA=0,nA=eA.length;tA\s]/i.test(AA)}function isLinkClose$1(AA){return/^<\/a\s*>/i.test(AA)}function linkify$1(AA){const eA=AA.tokens;if(AA.md.options.linkify)for(let tA=0,nA=eA.length;tA=0;aA--){const iA=rA[aA];if(iA.type==="link_close"){for(aA--;rA[aA].level!==iA.level&&rA[aA].type!=="link_open";)aA--;continue}if(iA.type==="html_inline"&&(isLinkOpen$1(iA.content)&&oA>0&&oA--,isLinkClose$1(iA.content)&&oA++),!(oA>0)&&iA.type==="text"&&AA.md.linkify.test(iA.content)){const sA=iA.content;let cA=AA.md.linkify.match(sA);const uA=[];let lA=iA.level,gA=0;cA.length>0&&cA[0].index===0&&aA>0&&rA[aA-1].type==="text_special"&&(cA=cA.slice(1));for(let QA=0;QAgA){const BA=new AA.Token("text","",0);BA.content=sA.slice(gA,TA),BA.level=lA,uA.push(BA)}const pA=new AA.Token("link_open","a",1);pA.attrs=[["href",fA]],pA.level=lA++,pA.markup="linkify",pA.info="auto",uA.push(pA);const mA=new AA.Token("text","",0);mA.content=hA,mA.level=lA,uA.push(mA);const EA=new AA.Token("link_close","a",-1);EA.level=--lA,EA.markup="linkify",EA.info="auto",uA.push(EA),gA=cA[QA].lastIndex}if(gA=0;tA--){const nA=AA[tA];nA.type==="text"&&!eA&&(nA.content=nA.content.replace(SCOPED_ABBR_RE,replaceFn)),nA.type==="link_open"&&nA.info==="auto"&&eA--,nA.type==="link_close"&&nA.info==="auto"&&eA++}}function replace_rare(AA){let eA=0;for(let tA=AA.length-1;tA>=0;tA--){const nA=AA[tA];nA.type==="text"&&!eA&&RARE_RE.test(nA.content)&&(nA.content=nA.content.replace(/\+-/g,"±").replace(/\.{2,}/g,"…").replace(/([?!])…/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---(?=[^-]|$)/mg,"$1—").replace(/(^|\s)--(?=\s|$)/mg,"$1–").replace(/(^|[^-\s])--(?=[^-\s]|$)/mg,"$1–")),nA.type==="link_open"&&nA.info==="auto"&&eA--,nA.type==="link_close"&&nA.info==="auto"&&eA++}}function replace$1(AA){let eA;if(AA.md.options.typographer)for(eA=AA.tokens.length-1;eA>=0;eA--)AA.tokens[eA].type==="inline"&&(SCOPED_ABBR_TEST_RE.test(AA.tokens[eA].content)&&replace_scoped(AA.tokens[eA].children),RARE_RE.test(AA.tokens[eA].content)&&replace_rare(AA.tokens[eA].children))}const QUOTE_TEST_RE=/['"]/,QUOTE_RE=/['"]/g,APOSTROPHE="’";function replaceAt(AA,eA,tA){return AA.slice(0,eA)+tA+AA.slice(eA+1)}function process_inlines(AA,eA){let tA;const nA=[];for(let rA=0;rA=0&&!(nA[tA].level<=aA);tA--);if(nA.length=tA+1,oA.type!=="text")continue;let iA=oA.content,sA=0,cA=iA.length;A:for(;sA=0)dA=iA.charCodeAt(uA.index-1);else for(tA=rA-1;tA>=0&&!(AA[tA].type==="softbreak"||AA[tA].type==="hardbreak");tA--)if(AA[tA].content){dA=AA[tA].content.charCodeAt(AA[tA].content.length-1);break}let fA=32;if(sA=48&&dA<=57&&(gA=lA=!1),lA&&gA&&(lA=hA,gA=TA),!lA&&!gA){QA&&(oA.content=replaceAt(oA.content,uA.index,APOSTROPHE));continue}if(gA)for(tA=nA.length-1;tA>=0;tA--){let EA=nA[tA];if(nA[tA].level=0;eA--)AA.tokens[eA].type!=="inline"||!QUOTE_TEST_RE.test(AA.tokens[eA].content)||process_inlines(AA.tokens[eA].children,AA)}function text_join(AA){let eA,tA;const nA=AA.tokens,rA=nA.length;for(let oA=0;oA0&&this.level++,this.tokens.push(nA),nA};StateBlock.prototype.isEmpty=function(eA){return this.bMarks[eA]+this.tShift[eA]>=this.eMarks[eA]};StateBlock.prototype.skipEmptyLines=function(eA){for(let tA=this.lineMax;eAtA;)if(!isSpace(this.src.charCodeAt(--eA)))return eA+1;return eA};StateBlock.prototype.skipChars=function(eA,tA){for(let nA=this.src.length;eAnA;)if(tA!==this.src.charCodeAt(--eA))return eA+1;return eA};StateBlock.prototype.getLines=function(eA,tA,nA,rA){if(eA>=tA)return"";const oA=new Array(tA-eA);for(let aA=0,iA=eA;iAnA?oA[aA]=new Array(sA-nA+1).join(" ")+this.src.slice(uA,lA):oA[aA]=this.src.slice(uA,lA)}return oA.join("")};StateBlock.prototype.Token=Token;const MAX_AUTOCOMPLETED_CELLS=65536;function getLine(AA,eA){const tA=AA.bMarks[eA]+AA.tShift[eA],nA=AA.eMarks[eA];return AA.src.slice(tA,nA)}function escapedSplit(AA){const eA=[],tA=AA.length;let nA=0,rA=AA.charCodeAt(nA),oA=!1,aA=0,iA="";for(;nAtA)return!1;let rA=eA+1;if(AA.sCount[rA]=4)return!1;let oA=AA.bMarks[rA]+AA.tShift[rA];if(oA>=AA.eMarks[rA])return!1;const aA=AA.src.charCodeAt(oA++);if(aA!==124&&aA!==45&&aA!==58||oA>=AA.eMarks[rA])return!1;const iA=AA.src.charCodeAt(oA++);if(iA!==124&&iA!==45&&iA!==58&&!isSpace(iA)||aA===45&&isSpace(iA))return!1;for(;oA=4)return!1;cA=escapedSplit(sA),cA.length&&cA[0]===""&&cA.shift(),cA.length&&cA[cA.length-1]===""&&cA.pop();const lA=cA.length;if(lA===0||lA!==uA.length)return!1;if(nA)return!0;const gA=AA.parentType;AA.parentType="table";const QA=AA.md.block.ruler.getRules("blockquote"),dA=AA.push("table_open","table",1),fA=[eA,0];dA.map=fA;const hA=AA.push("thead_open","thead",1);hA.map=[eA,eA+1];const TA=AA.push("tr_open","tr",1);TA.map=[eA,eA+1];for(let EA=0;EA=4||(cA=escapedSplit(sA),cA.length&&cA[0]===""&&cA.shift(),cA.length&&cA[cA.length-1]===""&&cA.pop(),mA+=lA-cA.length,mA>MAX_AUTOCOMPLETED_CELLS))break;if(rA===eA+2){const CA=AA.push("tbody_open","tbody",1);CA.map=pA=[eA+2,0]}const BA=AA.push("tr_open","tr",1);BA.map=[rA,rA+1];for(let CA=0;CA=4){nA++,rA=nA;continue}break}AA.line=rA;const oA=AA.push("code_block","code",0);return oA.content=AA.getLines(eA,rA,4+AA.blkIndent,!1)+` +`,oA.map=[eA,AA.line],!0}function fence(AA,eA,tA,nA){let rA=AA.bMarks[eA]+AA.tShift[eA],oA=AA.eMarks[eA];if(AA.sCount[eA]-AA.blkIndent>=4||rA+3>oA)return!1;const aA=AA.src.charCodeAt(rA);if(aA!==126&&aA!==96)return!1;let iA=rA;rA=AA.skipChars(rA,aA);let sA=rA-iA;if(sA<3)return!1;const cA=AA.src.slice(iA,rA),uA=AA.src.slice(rA,oA);if(aA===96&&uA.indexOf(String.fromCharCode(aA))>=0)return!1;if(nA)return!0;let lA=eA,gA=!1;for(;lA++,!(lA>=tA||(rA=iA=AA.bMarks[lA]+AA.tShift[lA],oA=AA.eMarks[lA],rA=4)&&(rA=AA.skipChars(rA,aA),!(rA-iA=4||AA.src.charCodeAt(rA)!==62)return!1;if(nA)return!0;const iA=[],sA=[],cA=[],uA=[],lA=AA.md.block.ruler.getRules("blockquote"),gA=AA.parentType;AA.parentType="blockquote";let QA=!1,dA;for(dA=eA;dA=oA)break;if(AA.src.charCodeAt(rA++)===62&&!mA){let BA=AA.sCount[dA]+1,CA,IA;AA.src.charCodeAt(rA)===32?(rA++,BA++,IA=!1,CA=!0):AA.src.charCodeAt(rA)===9?(CA=!0,(AA.bsCount[dA]+BA)%4===3?(rA++,BA++,IA=!1):IA=!0):CA=!1;let yA=BA;for(iA.push(AA.bMarks[dA]),AA.bMarks[dA]=rA;rA=oA,sA.push(AA.bsCount[dA]),AA.bsCount[dA]=AA.sCount[dA]+1+(CA?1:0),cA.push(AA.sCount[dA]),AA.sCount[dA]=yA-BA,uA.push(AA.tShift[dA]),AA.tShift[dA]=rA-AA.bMarks[dA];continue}if(QA)break;let EA=!1;for(let BA=0,CA=lA.length;BA";const TA=[eA,0];hA.map=TA,AA.md.block.tokenize(AA,eA,dA);const pA=AA.push("blockquote_close","blockquote",-1);pA.markup=">",AA.lineMax=aA,AA.parentType=gA,TA[1]=AA.line;for(let mA=0;mA=4)return!1;let oA=AA.bMarks[eA]+AA.tShift[eA];const aA=AA.src.charCodeAt(oA++);if(aA!==42&&aA!==45&&aA!==95)return!1;let iA=1;for(;oA=nA)return-1;let oA=AA.src.charCodeAt(rA++);if(oA<48||oA>57)return-1;for(;;){if(rA>=nA)return-1;if(oA=AA.src.charCodeAt(rA++),oA>=48&&oA<=57){if(rA-tA>=10)return-1;continue}if(oA===41||oA===46)break;return-1}return rA=4||AA.listIndent>=0&&AA.sCount[sA]-AA.listIndent>=4&&AA.sCount[sA]=AA.blkIndent&&(uA=!0);let lA,gA,QA;if((QA=skipOrderedListMarker(AA,sA))>=0){if(lA=!0,aA=AA.bMarks[sA]+AA.tShift[sA],gA=Number(AA.src.slice(aA,QA-1)),uA&&gA!==1)return!1}else if((QA=skipBulletListMarker(AA,sA))>=0)lA=!1;else return!1;if(uA&&AA.skipSpaces(QA)>=AA.eMarks[sA])return!1;if(nA)return!0;const dA=AA.src.charCodeAt(QA-1),fA=AA.tokens.length;lA?(iA=AA.push("ordered_list_open","ol",1),gA!==1&&(iA.attrs=[["start",gA]])):iA=AA.push("bullet_list_open","ul",1);const hA=[sA,0];iA.map=hA,iA.markup=String.fromCharCode(dA);let TA=!1;const pA=AA.md.block.ruler.getRules("list"),mA=AA.parentType;for(AA.parentType="list";sA=rA?IA=1:IA=BA-EA,IA>4&&(IA=1);const yA=EA+IA;iA=AA.push("list_item_open","li",1),iA.markup=String.fromCharCode(dA);const _A=[sA,0];iA.map=_A,lA&&(iA.info=AA.src.slice(aA,QA-1));const DA=AA.tight,HA=AA.tShift[sA],MA=AA.sCount[sA],xA=AA.listIndent;if(AA.listIndent=AA.blkIndent,AA.blkIndent=yA,AA.tight=!0,AA.tShift[sA]=CA-AA.bMarks[sA],AA.sCount[sA]=BA,CA>=rA&&AA.isEmpty(sA+1)?AA.line=Math.min(AA.line+2,tA):AA.md.block.tokenize(AA,sA,tA,!0),(!AA.tight||TA)&&(cA=!1),TA=AA.line-sA>1&&AA.isEmpty(AA.line-1),AA.blkIndent=AA.listIndent,AA.listIndent=xA,AA.tShift[sA]=HA,AA.sCount[sA]=MA,AA.tight=DA,iA=AA.push("list_item_close","li",-1),iA.markup=String.fromCharCode(dA),sA=AA.line,_A[1]=sA,sA>=tA||AA.sCount[sA]=4)break;let SA=!1;for(let OA=0,FA=pA.length;OA=4||AA.src.charCodeAt(rA)!==91)return!1;function iA(pA){const mA=AA.lineMax;if(pA>=mA||AA.isEmpty(pA))return null;let EA=!1;if(AA.sCount[pA]-AA.blkIndent>3&&(EA=!0),AA.sCount[pA]<0&&(EA=!0),!EA){const IA=AA.md.block.ruler.getRules("reference"),yA=AA.parentType;AA.parentType="reference";let _A=!1;for(let DA=0,HA=IA.length;DA"u"&&(AA.env.references={}),typeof AA.env.references[TA]>"u"&&(AA.env.references[TA]={title:hA,href:lA}),AA.line=aA),!0):!1}const block_names=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],attr_name$1="[a-zA-Z_:][a-zA-Z0-9:._-]*",unquoted$1="[^\"'=<>`\\x00-\\x20]+",single_quoted$1="'[^']*'",double_quoted$1='"[^"]*"',attr_value$1="(?:"+unquoted$1+"|"+single_quoted$1+"|"+double_quoted$1+")",attribute$1="(?:\\s+"+attr_name$1+"(?:\\s*=\\s*"+attr_value$1+")?)",open_tag$1="<[A-Za-z][A-Za-z0-9\\-]*"+attribute$1+"*\\s*\\/?>",close_tag$1="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",comment$2="",processing$1="<[?][\\s\\S]*?[?]>",declaration$1="]*>",cdata$1="",HTML_TAG_RE$1=new RegExp("^(?:"+open_tag$1+"|"+close_tag$1+"|"+comment$2+"|"+processing$1+"|"+declaration$1+"|"+cdata$1+")"),HTML_OPEN_CLOSE_TAG_RE$1=new RegExp("^(?:"+open_tag$1+"|"+close_tag$1+")"),HTML_SEQUENCES=[[/^<(script|pre|style|textarea)(?=(\s|>|$))/i,/<\/(script|pre|style|textarea)>/i,!0],[/^/,!0],[/^<\?/,/\?>/,!0],[/^/,!0],[/^/,!0],[new RegExp("^|$))","i"),/^$/,!0],[new RegExp(HTML_OPEN_CLOSE_TAG_RE$1.source+"\\s*$"),/^$/,!1]];function html_block(AA,eA,tA,nA){let rA=AA.bMarks[eA]+AA.tShift[eA],oA=AA.eMarks[eA];if(AA.sCount[eA]-AA.blkIndent>=4||!AA.md.options.html||AA.src.charCodeAt(rA)!==60)return!1;let aA=AA.src.slice(rA,oA),iA=0;for(;iA=4)return!1;let aA=AA.src.charCodeAt(rA);if(aA!==35||rA>=oA)return!1;let iA=1;for(aA=AA.src.charCodeAt(++rA);aA===35&&rA6||rArA&&isSpace(AA.src.charCodeAt(sA-1))&&(oA=sA),AA.line=eA+1;const cA=AA.push("heading_open","h"+String(iA),1);cA.markup="########".slice(0,iA),cA.map=[eA,AA.line];const uA=AA.push("inline","",0);uA.content=AA.src.slice(rA,oA).trim(),uA.map=[eA,AA.line],uA.children=[];const lA=AA.push("heading_close","h"+String(iA),-1);return lA.markup="########".slice(0,iA),!0}function lheading(AA,eA,tA){const nA=AA.md.block.ruler.getRules("paragraph");if(AA.sCount[eA]-AA.blkIndent>=4)return!1;const rA=AA.parentType;AA.parentType="paragraph";let oA=0,aA,iA=eA+1;for(;iA3)continue;if(AA.sCount[iA]>=AA.blkIndent){let QA=AA.bMarks[iA]+AA.tShift[iA];const dA=AA.eMarks[iA];if(QA=dA))){oA=aA===61?1:2;break}}if(AA.sCount[iA]<0)continue;let gA=!1;for(let QA=0,dA=nA.length;QA3||AA.sCount[oA]<0)continue;let cA=!1;for(let uA=0,lA=nA.length;uA=tA||AA.sCount[aA]=oA){AA.line=tA;break}const sA=AA.line;let cA=!1;for(let uA=0;uA=AA.line)throw new Error("block rule didn't increment state.line");break}if(!cA)throw new Error("none of the block rules matched");AA.tight=!iA,AA.isEmpty(AA.line-1)&&(iA=!0),aA=AA.line,aA0&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],rA={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(nA),this.tokens_meta.push(rA),nA};StateInline.prototype.scanDelims=function(AA,eA){const tA=this.posMax,nA=this.src.charCodeAt(AA),rA=AA>0?this.src.charCodeAt(AA-1):32;let oA=AA;for(;oA0)return!1;const tA=AA.pos,nA=AA.posMax;if(tA+3>nA||AA.src.charCodeAt(tA)!==58||AA.src.charCodeAt(tA+1)!==47||AA.src.charCodeAt(tA+2)!==47)return!1;const rA=AA.pending.match(SCHEME_RE);if(!rA)return!1;const oA=rA[1],aA=AA.md.linkify.matchAtStart(AA.src.slice(tA-oA.length));if(!aA)return!1;let iA=aA.url;if(iA.length<=oA.length)return!1;iA=iA.replace(/\*+$/,"");const sA=AA.md.normalizeLink(iA);if(!AA.md.validateLink(sA))return!1;if(!eA){AA.pending=AA.pending.slice(0,-oA.length);const cA=AA.push("link_open","a",1);cA.attrs=[["href",sA]],cA.markup="linkify",cA.info="auto";const uA=AA.push("text","",0);uA.content=AA.md.normalizeLinkText(iA);const lA=AA.push("link_close","a",-1);lA.markup="linkify",lA.info="auto"}return AA.pos+=iA.length-oA.length,!0}function newline$1(AA,eA){let tA=AA.pos;if(AA.src.charCodeAt(tA)!==10)return!1;const nA=AA.pending.length-1,rA=AA.posMax;if(!eA)if(nA>=0&&AA.pending.charCodeAt(nA)===32)if(nA>=1&&AA.pending.charCodeAt(nA-1)===32){let oA=nA-1;for(;oA>=1&&AA.pending.charCodeAt(oA-1)===32;)oA--;AA.pending=AA.pending.slice(0,oA),AA.push("hardbreak","br",0)}else AA.pending=AA.pending.slice(0,-1),AA.push("softbreak","br",0);else AA.push("softbreak","br",0);for(tA++;tA?@[]^_`{|}~-".split("").forEach(function(AA){ESCAPED[AA.charCodeAt(0)]=1});function escape$1(AA,eA){let tA=AA.pos;const nA=AA.posMax;if(AA.src.charCodeAt(tA)!==92||(tA++,tA>=nA))return!1;let rA=AA.src.charCodeAt(tA);if(rA===10){for(eA||AA.push("hardbreak","br",0),tA++;tA=55296&&rA<=56319&&tA+1=56320&&iA<=57343&&(oA+=AA.src[tA+1],tA++)}const aA="\\"+oA;if(!eA){const iA=AA.push("text_special","",0);rA<256&&ESCAPED[rA]!==0?iA.content=oA:iA.content=aA,iA.markup=aA,iA.info="escape"}return AA.pos=tA+1,!0}function backtick(AA,eA){let tA=AA.pos;if(AA.src.charCodeAt(tA)!==96)return!1;const rA=tA;tA++;const oA=AA.posMax;for(;tA=0;nA--){const rA=eA[nA];if(rA.marker!==95&&rA.marker!==42||rA.end===-1)continue;const oA=eA[rA.end],aA=nA>0&&eA[nA-1].end===rA.end+1&&eA[nA-1].marker===rA.marker&&eA[nA-1].token===rA.token-1&&eA[rA.end+1].token===oA.token+1,iA=String.fromCharCode(rA.marker),sA=AA.tokens[rA.token];sA.type=aA?"strong_open":"em_open",sA.tag=aA?"strong":"em",sA.nesting=1,sA.markup=aA?iA+iA:iA,sA.content="";const cA=AA.tokens[oA.token];cA.type=aA?"strong_close":"em_close",cA.tag=aA?"strong":"em",cA.nesting=-1,cA.markup=aA?iA+iA:iA,cA.content="",aA&&(AA.tokens[eA[nA-1].token].content="",AA.tokens[eA[rA.end+1].token].content="",nA--)}}function emphasis_post_process(AA){const eA=AA.tokens_meta,tA=AA.tokens_meta.length;postProcess(AA,AA.delimiters);for(let nA=0;nA=lA)return!1;if(sA=dA,rA=AA.md.helpers.parseLinkDestination(AA.src,dA,AA.posMax),rA.ok){for(aA=AA.md.normalizeLink(rA.str),AA.md.validateLink(aA)?dA=rA.pos:aA="",sA=dA;dA=lA||AA.src.charCodeAt(dA)!==41)&&(cA=!0),dA++}if(cA){if(typeof AA.env.references>"u")return!1;if(dA=0?nA=AA.src.slice(sA,dA++):dA=QA+1):dA=QA+1,nA||(nA=AA.src.slice(gA,QA)),oA=AA.env.references[normalizeReference(nA)],!oA)return AA.pos=uA,!1;aA=oA.href,iA=oA.title}if(!eA){AA.pos=gA,AA.posMax=QA;const fA=AA.push("link_open","a",1),hA=[["href",aA]];fA.attrs=hA,iA&&hA.push(["title",iA]),AA.linkLevel++,AA.md.inline.tokenize(AA),AA.linkLevel--,AA.push("link_close","a",-1)}return AA.pos=dA,AA.posMax=lA,!0}function image$2(AA,eA){let tA,nA,rA,oA,aA,iA,sA,cA,uA="";const lA=AA.pos,gA=AA.posMax;if(AA.src.charCodeAt(AA.pos)!==33||AA.src.charCodeAt(AA.pos+1)!==91)return!1;const QA=AA.pos+2,dA=AA.md.helpers.parseLinkLabel(AA,AA.pos+1,!1);if(dA<0)return!1;if(oA=dA+1,oA=gA)return!1;for(cA=oA,iA=AA.md.helpers.parseLinkDestination(AA.src,oA,AA.posMax),iA.ok&&(uA=AA.md.normalizeLink(iA.str),AA.md.validateLink(uA)?oA=iA.pos:uA=""),cA=oA;oA=gA||AA.src.charCodeAt(oA)!==41)return AA.pos=lA,!1;oA++}else{if(typeof AA.env.references>"u")return!1;if(oA=0?rA=AA.src.slice(cA,oA++):oA=dA+1):oA=dA+1,rA||(rA=AA.src.slice(QA,dA)),aA=AA.env.references[normalizeReference(rA)],!aA)return AA.pos=lA,!1;uA=aA.href,sA=aA.title}if(!eA){nA=AA.src.slice(QA,dA);const fA=[];AA.md.inline.parse(nA,AA.md,AA.env,fA);const hA=AA.push("image","img",0),TA=[["src",uA],["alt",""]];hA.attrs=TA,hA.children=fA,hA.content=nA,sA&&TA.push(["title",sA])}return AA.pos=oA,AA.posMax=gA,!0}const EMAIL_RE=/^([a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)$/,AUTOLINK_RE=/^([a-zA-Z][a-zA-Z0-9+.-]{1,31}):([^<>\x00-\x20]*)$/;function autolink(AA,eA){let tA=AA.pos;if(AA.src.charCodeAt(tA)!==60)return!1;const nA=AA.pos,rA=AA.posMax;for(;;){if(++tA>=rA)return!1;const aA=AA.src.charCodeAt(tA);if(aA===60)return!1;if(aA===62)break}const oA=AA.src.slice(nA+1,tA);if(AUTOLINK_RE.test(oA)){const aA=AA.md.normalizeLink(oA);if(!AA.md.validateLink(aA))return!1;if(!eA){const iA=AA.push("link_open","a",1);iA.attrs=[["href",aA]],iA.markup="autolink",iA.info="auto";const sA=AA.push("text","",0);sA.content=AA.md.normalizeLinkText(oA);const cA=AA.push("link_close","a",-1);cA.markup="autolink",cA.info="auto"}return AA.pos+=oA.length+2,!0}if(EMAIL_RE.test(oA)){const aA=AA.md.normalizeLink("mailto:"+oA);if(!AA.md.validateLink(aA))return!1;if(!eA){const iA=AA.push("link_open","a",1);iA.attrs=[["href",aA]],iA.markup="autolink",iA.info="auto";const sA=AA.push("text","",0);sA.content=AA.md.normalizeLinkText(oA);const cA=AA.push("link_close","a",-1);cA.markup="autolink",cA.info="auto"}return AA.pos+=oA.length+2,!0}return!1}function isLinkOpen(AA){return/^\s]/i.test(AA)}function isLinkClose(AA){return/^<\/a\s*>/i.test(AA)}function isLetter$1(AA){const eA=AA|32;return eA>=97&&eA<=122}function html_inline(AA,eA){if(!AA.md.options.html)return!1;const tA=AA.posMax,nA=AA.pos;if(AA.src.charCodeAt(nA)!==60||nA+2>=tA)return!1;const rA=AA.src.charCodeAt(nA+1);if(rA!==33&&rA!==63&&rA!==47&&!isLetter$1(rA))return!1;const oA=AA.src.slice(nA).match(HTML_TAG_RE$1);if(!oA)return!1;if(!eA){const aA=AA.push("html_inline","",0);aA.content=oA[0],isLinkOpen(aA.content)&&AA.linkLevel++,isLinkClose(aA.content)&&AA.linkLevel--}return AA.pos+=oA[0].length,!0}const DIGITAL_RE=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,NAMED_RE=/^&([a-z][a-z0-9]{1,31});/i;function entity(AA,eA){const tA=AA.pos,nA=AA.posMax;if(AA.src.charCodeAt(tA)!==38||tA+1>=nA)return!1;if(AA.src.charCodeAt(tA+1)===35){const oA=AA.src.slice(tA).match(DIGITAL_RE);if(oA){if(!eA){const aA=oA[1][0].toLowerCase()==="x"?parseInt(oA[1].slice(1),16):parseInt(oA[1],10),iA=AA.push("text_special","",0);iA.content=isValidEntityCode(aA)?fromCodePoint(aA):fromCodePoint(65533),iA.markup=oA[0],iA.info="entity"}return AA.pos+=oA[0].length,!0}}else{const oA=AA.src.slice(tA).match(NAMED_RE);if(oA){const aA=decodeHTML(oA[0]);if(aA!==oA[0]){if(!eA){const iA=AA.push("text_special","",0);iA.content=aA,iA.markup=oA[0],iA.info="entity"}return AA.pos+=oA[0].length,!0}}}return!1}function processDelimiters(AA){const eA={},tA=AA.length;if(!tA)return;let nA=0,rA=-2;const oA=[];for(let aA=0;aAsA;cA-=oA[cA]+1){const lA=AA[cA];if(lA.marker===iA.marker&&lA.open&&lA.end<0){let gA=!1;if((lA.close||iA.open)&&(lA.length+iA.length)%3===0&&(lA.length%3!==0||iA.length%3!==0)&&(gA=!0),!gA){const QA=cA>0&&!AA[cA-1].open?oA[cA-1]+1:0;oA[aA]=aA-cA+QA,oA[cA]=QA,iA.open=!1,lA.end=aA,lA.close=!1,uA=-1,rA=-2;break}}}uA!==-1&&(eA[iA.marker][(iA.open?3:0)+(iA.length||0)%3]=uA)}}function link_pairs(AA){const eA=AA.tokens_meta,tA=AA.tokens_meta.length;processDelimiters(AA.delimiters);for(let nA=0;nA0&&nA++,rA[eA].type==="text"&&eA+1=AA.pos)throw new Error("inline rule didn't increment state.pos");break}}else AA.pos=AA.posMax;aA||AA.pos++,oA[eA]=AA.pos};ParserInline.prototype.tokenize=function(AA){const eA=this.ruler.getRules(""),tA=eA.length,nA=AA.posMax,rA=AA.md.options.maxNesting;for(;AA.pos=AA.pos)throw new Error("inline rule didn't increment state.pos");break}}if(aA){if(AA.pos>=nA)break;continue}AA.pending+=AA.src[AA.pos++]}AA.pending&&AA.pushPending()};ParserInline.prototype.parse=function(AA,eA,tA,nA){const rA=new this.State(AA,eA,tA,nA);this.tokenize(rA);const oA=this.ruler2.getRules(""),aA=oA.length;for(let iA=0;iA|$))",eA.tpl_email_fuzzy="(^|"+tA+'|"|\\(|'+eA.src_ZCc+")("+eA.src_email_name+"@"+eA.tpl_host_fuzzy_strict+")",eA.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+eA.src_ZPCc+"))((?![$+<=>^`||])"+eA.tpl_host_port_fuzzy_strict+eA.src_path+")",eA.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+eA.src_ZPCc+"))((?![$+<=>^`||])"+eA.tpl_host_port_no_ip_fuzzy_strict+eA.src_path+")",eA}function assign$1(AA){return Array.prototype.slice.call(arguments,1).forEach(function(tA){tA&&Object.keys(tA).forEach(function(nA){AA[nA]=tA[nA]})}),AA}function _class$1(AA){return Object.prototype.toString.call(AA)}function isString(AA){return _class$1(AA)==="[object String]"}function isObject$2(AA){return _class$1(AA)==="[object Object]"}function isRegExp$1(AA){return _class$1(AA)==="[object RegExp]"}function isFunction$1(AA){return _class$1(AA)==="[object Function]"}function escapeRE(AA){return AA.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}const defaultOptions$1={fuzzyLink:!0,fuzzyEmail:!0,fuzzyIP:!1};function isOptionsObj(AA){return Object.keys(AA||{}).reduce(function(eA,tA){return eA||defaultOptions$1.hasOwnProperty(tA)},!1)}const defaultSchemas={"http:":{validate:function(AA,eA,tA){const nA=AA.slice(eA);return tA.re.http||(tA.re.http=new RegExp("^\\/\\/"+tA.re.src_auth+tA.re.src_host_port_strict+tA.re.src_path,"i")),tA.re.http.test(nA)?nA.match(tA.re.http)[0].length:0}},"https:":"http:","ftp:":"http:","//":{validate:function(AA,eA,tA){const nA=AA.slice(eA);return tA.re.no_http||(tA.re.no_http=new RegExp("^"+tA.re.src_auth+"(?:localhost|(?:(?:"+tA.re.src_domain+")\\.)+"+tA.re.src_domain_root+")"+tA.re.src_port+tA.re.src_host_terminator+tA.re.src_path,"i")),tA.re.no_http.test(nA)?eA>=3&&AA[eA-3]===":"||eA>=3&&AA[eA-3]==="/"?0:nA.match(tA.re.no_http)[0].length:0}},"mailto:":{validate:function(AA,eA,tA){const nA=AA.slice(eA);return tA.re.mailto||(tA.re.mailto=new RegExp("^"+tA.re.src_email_name+"@"+tA.re.src_host_strict,"i")),tA.re.mailto.test(nA)?nA.match(tA.re.mailto)[0].length:0}}},tlds_2ch_src_re="a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]",tlds_default="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф".split("|");function resetScanCache(AA){AA.__index__=-1,AA.__text_cache__=""}function createValidator(AA){return function(eA,tA){const nA=eA.slice(tA);return AA.test(nA)?nA.match(AA)[0].length:0}}function createNormalizer(){return function(AA,eA){eA.normalize(AA)}}function compile$3(AA){const eA=AA.re=reFactory(AA.__opts__),tA=AA.__tlds__.slice();AA.onCompile(),AA.__tlds_replaced__||tA.push(tlds_2ch_src_re),tA.push(eA.src_xn),eA.src_tlds=tA.join("|");function nA(iA){return iA.replace("%TLDS%",eA.src_tlds)}eA.email_fuzzy=RegExp(nA(eA.tpl_email_fuzzy),"i"),eA.link_fuzzy=RegExp(nA(eA.tpl_link_fuzzy),"i"),eA.link_no_ip_fuzzy=RegExp(nA(eA.tpl_link_no_ip_fuzzy),"i"),eA.host_fuzzy_test=RegExp(nA(eA.tpl_host_fuzzy_test),"i");const rA=[];AA.__compiled__={};function oA(iA,sA){throw new Error('(LinkifyIt) Invalid schema "'+iA+'": '+sA)}Object.keys(AA.__schemas__).forEach(function(iA){const sA=AA.__schemas__[iA];if(sA===null)return;const cA={validate:null,link:null};if(AA.__compiled__[iA]=cA,isObject$2(sA)){isRegExp$1(sA.validate)?cA.validate=createValidator(sA.validate):isFunction$1(sA.validate)?cA.validate=sA.validate:oA(iA,sA),isFunction$1(sA.normalize)?cA.normalize=sA.normalize:sA.normalize?oA(iA,sA):cA.normalize=createNormalizer();return}if(isString(sA)){rA.push(iA);return}oA(iA,sA)}),rA.forEach(function(iA){AA.__compiled__[AA.__schemas__[iA]]&&(AA.__compiled__[iA].validate=AA.__compiled__[AA.__schemas__[iA]].validate,AA.__compiled__[iA].normalize=AA.__compiled__[AA.__schemas__[iA]].normalize)}),AA.__compiled__[""]={validate:null,normalize:createNormalizer()};const aA=Object.keys(AA.__compiled__).filter(function(iA){return iA.length>0&&AA.__compiled__[iA]}).map(escapeRE).join("|");AA.re.schema_test=RegExp("(^|(?!_)(?:[><|]|"+eA.src_ZPCc+"))("+aA+")","i"),AA.re.schema_search=RegExp("(^|(?!_)(?:[><|]|"+eA.src_ZPCc+"))("+aA+")","ig"),AA.re.schema_at_start=RegExp("^"+AA.re.schema_search.source,"i"),AA.re.pretest=RegExp("("+AA.re.schema_test.source+")|("+AA.re.host_fuzzy_test.source+")|@","i"),resetScanCache(AA)}function Match(AA,eA){const tA=AA.__index__,nA=AA.__last_index__,rA=AA.__text_cache__.slice(tA,nA);this.schema=AA.__schema__.toLowerCase(),this.index=tA+eA,this.lastIndex=nA+eA,this.raw=rA,this.text=rA,this.url=rA}function createMatch(AA,eA){const tA=new Match(AA,eA);return AA.__compiled__[tA.schema].normalize(tA,AA),tA}function LinkifyIt(AA,eA){if(!(this instanceof LinkifyIt))return new LinkifyIt(AA,eA);eA||isOptionsObj(AA)&&(eA=AA,AA={}),this.__opts__=assign$1({},defaultOptions$1,eA),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=assign$1({},defaultSchemas,AA),this.__compiled__={},this.__tlds__=tlds_default,this.__tlds_replaced__=!1,this.re={},compile$3(this)}LinkifyIt.prototype.add=function(eA,tA){return this.__schemas__[eA]=tA,compile$3(this),this};LinkifyIt.prototype.set=function(eA){return this.__opts__=assign$1(this.__opts__,eA),this};LinkifyIt.prototype.test=function(eA){if(this.__text_cache__=eA,this.__index__=-1,!eA.length)return!1;let tA,nA,rA,oA,aA,iA,sA,cA,uA;if(this.re.schema_test.test(eA)){for(sA=this.re.schema_search,sA.lastIndex=0;(tA=sA.exec(eA))!==null;)if(oA=this.testSchemaAt(eA,tA[2],sA.lastIndex),oA){this.__schema__=tA[2],this.__index__=tA.index+tA[1].length,this.__last_index__=tA.index+tA[0].length+oA;break}}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(cA=eA.search(this.re.host_fuzzy_test),cA>=0&&(this.__index__<0||cA=0&&(rA=eA.match(this.re.email_fuzzy))!==null&&(aA=rA.index+rA[1].length,iA=rA.index+rA[0].length,(this.__index__<0||aAthis.__last_index__)&&(this.__schema__="mailto:",this.__index__=aA,this.__last_index__=iA))),this.__index__>=0};LinkifyIt.prototype.pretest=function(eA){return this.re.pretest.test(eA)};LinkifyIt.prototype.testSchemaAt=function(eA,tA,nA){return this.__compiled__[tA.toLowerCase()]?this.__compiled__[tA.toLowerCase()].validate(eA,nA,this):0};LinkifyIt.prototype.match=function(eA){const tA=[];let nA=0;this.__index__>=0&&this.__text_cache__===eA&&(tA.push(createMatch(this,nA)),nA=this.__last_index__);let rA=nA?eA.slice(nA):eA;for(;this.test(rA);)tA.push(createMatch(this,nA)),rA=rA.slice(this.__last_index__),nA+=this.__last_index__;return tA.length?tA:null};LinkifyIt.prototype.matchAtStart=function(eA){if(this.__text_cache__=eA,this.__index__=-1,!eA.length)return null;const tA=this.re.schema_at_start.exec(eA);if(!tA)return null;const nA=this.testSchemaAt(eA,tA[2],tA[0].length);return nA?(this.__schema__=tA[2],this.__index__=tA.index+tA[1].length,this.__last_index__=tA.index+tA[0].length+nA,createMatch(this,0)):null};LinkifyIt.prototype.tlds=function(eA,tA){return eA=Array.isArray(eA)?eA:[eA],tA?(this.__tlds__=this.__tlds__.concat(eA).sort().filter(function(nA,rA,oA){return nA!==oA[rA-1]}).reverse(),compile$3(this),this):(this.__tlds__=eA.slice(),this.__tlds_replaced__=!0,compile$3(this),this)};LinkifyIt.prototype.normalize=function(eA){eA.schema||(eA.url="http://"+eA.url),eA.schema==="mailto:"&&!/^mailto:/i.test(eA.url)&&(eA.url="mailto:"+eA.url)};LinkifyIt.prototype.onCompile=function(){};const maxInt=2147483647,base=36,tMin=1,tMax=26,skew=38,damp=700,initialBias=72,initialN=128,delimiter="-",regexPunycode=/^xn--/,regexNonASCII=/[^\0-\x7F]/,regexSeparators=/[\x2E\u3002\uFF0E\uFF61]/g,errors={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},baseMinusTMin=base-tMin,floor=Math.floor,stringFromCharCode=String.fromCharCode;function error(AA){throw new RangeError(errors[AA])}function map$3(AA,eA){const tA=[];let nA=AA.length;for(;nA--;)tA[nA]=eA(AA[nA]);return tA}function mapDomain(AA,eA){const tA=AA.split("@");let nA="";tA.length>1&&(nA=tA[0]+"@",AA=tA[1]),AA=AA.replace(regexSeparators,".");const rA=AA.split("."),oA=map$3(rA,eA).join(".");return nA+oA}function ucs2decode(AA){const eA=[];let tA=0;const nA=AA.length;for(;tA=55296&&rA<=56319&&tAString.fromCodePoint(...AA),basicToDigit=function(AA){return AA>=48&&AA<58?26+(AA-48):AA>=65&&AA<91?AA-65:AA>=97&&AA<123?AA-97:base},digitToBasic=function(AA,eA){return AA+22+75*(AA<26)-((eA!=0)<<5)},adapt=function(AA,eA,tA){let nA=0;for(AA=tA?floor(AA/damp):AA>>1,AA+=floor(AA/eA);AA>baseMinusTMin*tMax>>1;nA+=base)AA=floor(AA/baseMinusTMin);return floor(nA+(baseMinusTMin+1)*AA/(AA+skew))},decode$1=function(AA){const eA=[],tA=AA.length;let nA=0,rA=initialN,oA=initialBias,aA=AA.lastIndexOf(delimiter);aA<0&&(aA=0);for(let iA=0;iA=128&&error("not-basic"),eA.push(AA.charCodeAt(iA));for(let iA=aA>0?aA+1:0;iA=tA&&error("invalid-input");const gA=basicToDigit(AA.charCodeAt(iA++));gA>=base&&error("invalid-input"),gA>floor((maxInt-nA)/uA)&&error("overflow"),nA+=gA*uA;const QA=lA<=oA?tMin:lA>=oA+tMax?tMax:lA-oA;if(gAfloor(maxInt/dA)&&error("overflow"),uA*=dA}const cA=eA.length+1;oA=adapt(nA-sA,cA,sA==0),floor(nA/cA)>maxInt-rA&&error("overflow"),rA+=floor(nA/cA),nA%=cA,eA.splice(nA++,0,rA)}return String.fromCodePoint(...eA)},encode$1=function(AA){const eA=[];AA=ucs2decode(AA);const tA=AA.length;let nA=initialN,rA=0,oA=initialBias;for(const sA of AA)sA<128&&eA.push(stringFromCharCode(sA));const aA=eA.length;let iA=aA;for(aA&&eA.push(delimiter);iA=nA&&uAfloor((maxInt-rA)/cA)&&error("overflow"),rA+=(sA-nA)*cA,nA=sA;for(const uA of AA)if(uAmaxInt&&error("overflow"),uA===nA){let lA=rA;for(let gA=base;;gA+=base){const QA=gA<=oA?tMin:gA>=oA+tMax?tMax:gA-oA;if(lA=0))try{eA.hostname=punycode.toASCII(eA.hostname)}catch{}return encode$2(format(eA))}function normalizeLinkText(AA){const eA=urlParse(AA,!0);if(eA.hostname&&(!eA.protocol||RECODE_HOSTNAME_FOR.indexOf(eA.protocol)>=0))try{eA.hostname=punycode.toUnicode(eA.hostname)}catch{}return decode$2(format(eA),decode$2.defaultChars+"%")}function MarkdownIt(AA,eA){if(!(this instanceof MarkdownIt))return new MarkdownIt(AA,eA);eA||isString$1(AA)||(eA=AA||{},AA="default"),this.inline=new ParserInline,this.block=new ParserBlock,this.core=new Core,this.renderer=new Renderer,this.linkify=new LinkifyIt,this.validateLink=validateLink,this.normalizeLink=normalizeLink$2,this.normalizeLinkText=normalizeLinkText,this.utils=utils$7,this.helpers=assign$2({},helpers$2),this.options={},this.configure(AA),eA&&this.set(eA)}MarkdownIt.prototype.set=function(AA){return assign$2(this.options,AA),this};MarkdownIt.prototype.configure=function(AA){const eA=this;if(isString$1(AA)){const tA=AA;if(AA=config$2[tA],!AA)throw new Error('Wrong `markdown-it` preset "'+tA+'", check name')}if(!AA)throw new Error("Wrong `markdown-it` preset, can't be empty");return AA.options&&eA.set(AA.options),AA.components&&Object.keys(AA.components).forEach(function(tA){AA.components[tA].rules&&eA[tA].ruler.enableOnly(AA.components[tA].rules),AA.components[tA].rules2&&eA[tA].ruler2.enableOnly(AA.components[tA].rules2)}),this};MarkdownIt.prototype.enable=function(AA,eA){let tA=[];Array.isArray(AA)||(AA=[AA]),["core","block","inline"].forEach(function(rA){tA=tA.concat(this[rA].ruler.enable(AA,!0))},this),tA=tA.concat(this.inline.ruler2.enable(AA,!0));const nA=AA.filter(function(rA){return tA.indexOf(rA)<0});if(nA.length&&!eA)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+nA);return this};MarkdownIt.prototype.disable=function(AA,eA){let tA=[];Array.isArray(AA)||(AA=[AA]),["core","block","inline"].forEach(function(rA){tA=tA.concat(this[rA].ruler.disable(AA,!0))},this),tA=tA.concat(this.inline.ruler2.disable(AA,!0));const nA=AA.filter(function(rA){return tA.indexOf(rA)<0});if(nA.length&&!eA)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+nA);return this};MarkdownIt.prototype.use=function(AA){const eA=[this].concat(Array.prototype.slice.call(arguments,1));return AA.apply(AA,eA),this};MarkdownIt.prototype.parse=function(AA,eA){if(typeof AA!="string")throw new Error("Input data should be a String");const tA=new this.core.State(AA,this,eA);return this.core.process(tA),tA.tokens};MarkdownIt.prototype.render=function(AA,eA){return eA=eA||{},this.renderer.render(this.parse(AA,eA),this.options,eA)};MarkdownIt.prototype.parseInline=function(AA,eA){const tA=new this.core.State(AA,this,eA);return tA.inlineMode=!0,this.core.process(tA),tA.tokens};MarkdownIt.prototype.renderInline=function(AA,eA){return eA=eA||{},this.renderer.render(this.parseInline(AA,eA),this.options,eA)};var e$1=!1,n$1={false:"push",true:"unshift",after:"push",before:"unshift"},t$1={isPermalinkSymbol:!0};function r$1(AA,eA,tA,nA){var rA;if(!e$1){var oA="Using deprecated markdown-it-anchor permalink option, see https://github.com/valeriangalliat/markdown-it-anchor#permalinks";typeof process=="object"&&process&&process.emitWarning?process.emitWarning(oA):console.warn(oA),e$1=!0}var aA=[Object.assign(new tA.Token("link_open","a",1),{attrs:[].concat(eA.permalinkClass?[["class",eA.permalinkClass]]:[],[["href",eA.permalinkHref(AA,tA)]],Object.entries(eA.permalinkAttrs(AA,tA)))}),Object.assign(new tA.Token("html_block","",0),{content:eA.permalinkSymbol,meta:t$1}),new tA.Token("link_close","a",-1)];eA.permalinkSpace&&tA.tokens[nA+1].children[n$1[eA.permalinkBefore]](Object.assign(new tA.Token("text","",0),{content:" "})),(rA=tA.tokens[nA+1].children)[n$1[eA.permalinkBefore]].apply(rA,aA)}function a$2(AA){return"#"+AA}function i$2(AA){return{}}var l$1={class:"header-anchor",symbol:"#",renderHref:a$2,renderAttrs:i$2};function o$2(AA){function eA(tA){return tA=Object.assign({},eA.defaults,tA),function(nA,rA,oA,aA){return AA(nA,tA,rA,oA,aA)}}return eA.defaults=Object.assign({},l$1),eA.renderPermalinkImpl=AA,eA}var c$2=o$2(function(AA,eA,tA,nA,rA){var oA,aA=[Object.assign(new nA.Token("link_open","a",1),{attrs:[].concat(eA.class?[["class",eA.class]]:[],[["href",eA.renderHref(AA,nA)]],eA.ariaHidden?[["aria-hidden","true"]]:[],Object.entries(eA.renderAttrs(AA,nA)))}),Object.assign(new nA.Token("html_inline","",0),{content:eA.symbol,meta:t$1}),new nA.Token("link_close","a",-1)];if(eA.space){var iA=typeof eA.space=="string"?eA.space:" ";nA.tokens[rA+1].children[n$1[eA.placement]](Object.assign(new nA.Token(typeof eA.space=="string"?"html_inline":"text","",0),{content:iA}))}(oA=nA.tokens[rA+1].children)[n$1[eA.placement]].apply(oA,aA)});Object.assign(c$2.defaults,{space:!0,placement:"after",ariaHidden:!1});var s$1=o$2(c$2.renderPermalinkImpl);s$1.defaults=Object.assign({},c$2.defaults,{ariaHidden:!0});var u$1=o$2(function(AA,eA,tA,nA,rA){var oA=[Object.assign(new nA.Token("link_open","a",1),{attrs:[].concat(eA.class?[["class",eA.class]]:[],[["href",eA.renderHref(AA,nA)]],Object.entries(eA.renderAttrs(AA,nA)))})].concat(eA.safariReaderFix?[new nA.Token("span_open","span",1)]:[],nA.tokens[rA+1].children,eA.safariReaderFix?[new nA.Token("span_close","span",-1)]:[],[new nA.Token("link_close","a",-1)]);nA.tokens[rA+1]=Object.assign(new nA.Token("inline","",0),{children:oA})});Object.assign(u$1.defaults,{safariReaderFix:!1});var d$1=o$2(function(AA,eA,tA,nA,rA){var oA;if(!["visually-hidden","aria-label","aria-describedby","aria-labelledby"].includes(eA.style))throw new Error("`permalink.linkAfterHeader` called with unknown style option `"+eA.style+"`");if(!["aria-describedby","aria-labelledby"].includes(eA.style)&&!eA.assistiveText)throw new Error("`permalink.linkAfterHeader` called without the `assistiveText` option in `"+eA.style+"` style");if(eA.style==="visually-hidden"&&!eA.visuallyHiddenClass)throw new Error("`permalink.linkAfterHeader` called without the `visuallyHiddenClass` option in `visually-hidden` style");var aA=nA.tokens[rA+1].children.filter(function(lA){return lA.type==="text"||lA.type==="code_inline"}).reduce(function(lA,gA){return lA+gA.content},""),iA=[],sA=[];if(eA.class&&sA.push(["class",eA.class]),sA.push(["href",eA.renderHref(AA,nA)]),sA.push.apply(sA,Object.entries(eA.renderAttrs(AA,nA))),eA.style==="visually-hidden"){if(iA.push(Object.assign(new nA.Token("span_open","span",1),{attrs:[["class",eA.visuallyHiddenClass]]}),Object.assign(new nA.Token("text","",0),{content:eA.assistiveText(aA)}),new nA.Token("span_close","span",-1)),eA.space){var cA=typeof eA.space=="string"?eA.space:" ";iA[n$1[eA.placement]](Object.assign(new nA.Token(typeof eA.space=="string"?"html_inline":"text","",0),{content:cA}))}iA[n$1[eA.placement]](Object.assign(new nA.Token("span_open","span",1),{attrs:[["aria-hidden","true"]]}),Object.assign(new nA.Token("html_inline","",0),{content:eA.symbol,meta:t$1}),new nA.Token("span_close","span",-1))}else iA.push(Object.assign(new nA.Token("html_inline","",0),{content:eA.symbol,meta:t$1}));eA.style==="aria-label"?sA.push(["aria-label",eA.assistiveText(aA)]):["aria-describedby","aria-labelledby"].includes(eA.style)&&sA.push([eA.style,AA]);var uA=[Object.assign(new nA.Token("link_open","a",1),{attrs:sA})].concat(iA,[new nA.Token("link_close","a",-1)]);(oA=nA.tokens).splice.apply(oA,[rA+3,0].concat(uA)),eA.wrapper&&(nA.tokens.splice(rA,0,Object.assign(new nA.Token("html_block","",0),{content:eA.wrapper[0]+` +`})),nA.tokens.splice(rA+3+uA.length+1,0,Object.assign(new nA.Token("html_block","",0),{content:eA.wrapper[1]+` +`})))});function f$1(AA,eA,tA,nA){var rA=AA,oA=nA;if(tA&&Object.prototype.hasOwnProperty.call(eA,rA))throw new Error("User defined `id` attribute `"+AA+"` is not unique. Please fix it in your Markdown to continue.");for(;Object.prototype.hasOwnProperty.call(eA,rA);)rA=AA+"-"+oA,oA+=1;return eA[rA]=!0,rA}function p$2(AA,eA){eA=Object.assign({},p$2.defaults,eA),AA.core.ruler.push("anchor",function(tA){for(var nA,rA={},oA=tA.tokens,aA=Array.isArray(eA.level)?(nA=eA.level,function(lA){return nA.includes(lA)}):function(lA){return function(gA){return gA>=lA}}(eA.level),iA=0;iA:(",">:-("],blush:[':")',':-")'],broken_heart:["0&&!sA.test(pA[TA-1])||TA+hA.lengthdA&&(QA=new gA("text","",0),QA.content=uA.slice(dA,TA),fA.push(QA)),QA=new gA("emoji","",0),QA.markup=mA,QA.content=tA[mA],fA.push(QA),dA=TA+hA.length}),dA=0;gA--)hA=fA[gA],(hA.type==="link_open"||hA.type==="link_close")&&hA.info==="auto"&&(pA-=hA.nesting),hA.type==="text"&&pA===0&&rA.test(hA.content)&&(TA[QA].children=fA=aA(fA,gA,cA(hA.content,hA.level,lA.Token)))}};function quoteRE(AA){return AA.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}var normalize_opts$1=function(eA){var tA=eA.defs,nA;eA.enabled.length&&(tA=Object.keys(tA).reduce(function(sA,cA){return eA.enabled.indexOf(cA)>=0&&(sA[cA]=tA[cA]),sA},{})),nA=Object.keys(eA.shortcuts).reduce(function(sA,cA){return tA[cA]?Array.isArray(eA.shortcuts[cA])?(eA.shortcuts[cA].forEach(function(uA){sA[uA]=cA}),sA):(sA[eA.shortcuts[cA]]=cA,sA):sA},{});var rA=Object.keys(tA),oA;rA.length===0?oA="^$":oA=rA.map(function(sA){return":"+sA+":"}).concat(Object.keys(nA)).sort().reverse().map(function(sA){return quoteRE(sA)}).join("|");var aA=RegExp(oA),iA=RegExp(oA,"g");return{defs:tA,shortcuts:nA,scanRE:aA,replaceRE:iA}},emoji_html=render,emoji_replace=replace,normalize_opts=normalize_opts$1,bare=function(eA,tA){var nA={defs:{},shortcuts:{},enabled:[]},rA=normalize_opts(eA.utils.assign({},nA,tA||{}));eA.renderer.rules.emoji=emoji_html,eA.core.ruler.after("linkify","emoji",emoji_replace(eA,rA.defs,rA.shortcuts,rA.scanRE,rA.replaceRE))},emojies_defs=require$$0$7,emojies_shortcuts=shortcuts,bare_emoji_plugin=bare,markdownItEmoji=function(eA,tA){var nA={defs:emojies_defs,shortcuts:emojies_shortcuts,enabled:[]},rA=eA.utils.assign({},nA,tA||{});bare_emoji_plugin(eA,rA)};const markdownItEmoji$1=getDefaultExportFromCjs(markdownItEmoji);var disableCheckboxes=!0,useLabelWrapper=!1,useLabelAfter=!1,markdownItTaskLists=function(AA,eA){eA&&(disableCheckboxes=!eA.enabled,useLabelWrapper=!!eA.label,useLabelAfter=!!eA.labelAfter),AA.core.ruler.after("inline","github-task-lists",function(tA){for(var nA=tA.tokens,rA=2;rA=0;nA--)if(AA[nA].level===tA)return nA;return-1}function isTodoItem(AA,eA){return isInline(AA[eA])&&isParagraph(AA[eA-1])&&isListItem(AA[eA-2])&&startsWithTodoMarkdown(AA[eA])}function todoify(AA,eA){if(AA.children.unshift(makeCheckbox(AA,eA)),AA.children[1].content=AA.children[1].content.slice(3),AA.content=AA.content.slice(3),useLabelWrapper)if(useLabelAfter){AA.children.pop();var tA="task-item-"+Math.ceil(Math.random()*(1e4*1e3)-1e3);AA.children[0].content=AA.children[0].content.slice(0,-1)+' id="'+tA+'">',AA.children.push(afterLabel(AA.content,tA,eA))}else AA.children.unshift(beginLabel(eA)),AA.children.push(endLabel(eA))}function makeCheckbox(AA,eA){var tA=new eA("html_inline","",0),nA=disableCheckboxes?' disabled="" ':"";return AA.content.indexOf("[ ] ")===0?tA.content='':(AA.content.indexOf("[x] ")===0||AA.content.indexOf("[X] ")===0)&&(tA.content=''),tA}function beginLabel(AA){var eA=new AA("html_inline","",0);return eA.content="",eA}function afterLabel(AA,eA,tA){var nA=new tA("html_inline","",0);return nA.content='",nA.attrs=[{for:eA}],nA}function isInline(AA){return AA.type==="inline"}function isParagraph(AA){return AA.type==="paragraph_open"}function isListItem(AA){return AA.type==="list_item_open"}function startsWithTodoMarkdown(AA){return AA.content.indexOf("[ ] ")===0||AA.content.indexOf("[x] ")===0||AA.content.indexOf("[X] ")===0}const markdownItTaskLists$1=getDefaultExportFromCjs(markdownItTaskLists);var markdownItContainer=function(eA,tA,nA){function rA(QA){return QA.trim().split(" ",2)[0]===tA}function oA(QA,dA,fA,hA,TA){return QA[dA].nesting===1&&QA[dA].attrJoin("class",tA),TA.renderToken(QA,dA,fA,hA,TA)}nA=nA||{};var aA=3,iA=nA.marker||":",sA=iA.charCodeAt(0),cA=iA.length,uA=nA.validate||rA,lA=nA.render||oA;function gA(QA,dA,fA,hA){var TA,pA,mA,EA,BA,CA,IA,yA,_A=!1,DA=QA.bMarks[dA]+QA.tShift[dA],HA=QA.eMarks[dA];if(sA!==QA.src.charCodeAt(DA))return!1;for(TA=DA+1;TA<=HA&&iA[(TA-DA)%cA]===QA.src[TA];TA++);if(mA=Math.floor((TA-DA)/cA),mA=fA||(DA=QA.bMarks[pA]+QA.tShift[pA],HA=QA.eMarks[pA],DA=4)){for(TA=DA+1;TA<=HA&&iA[(TA-DA)%cA]===QA.src[TA];TA++);if(!(Math.floor((TA-DA)/cA)